Professional Documents
Culture Documents
Ahora bien, graficaremos dos funciones trigonomtricas: el seno y el coseno. Por lo tanto necesitamos evaluar ambas funciones
en x, y almacenar el resultado en dos variables:
In [54]: y1 = sin(x)
y2 = cos(x)
Out[34]:
[<matplotlib.lines.Line2D at 0x77d1320>]
En este ejemplo hemos graficado la funcin seno con marcadores en forma de diamante con el color #CC3399. La funcin
coseno, para diferenciarla, la graficamos con marcadores circulares de color cyan.
Out[35]:
<matplotlib.legend.Legend at 0xcc6ffd0>
En el caso de la funcin legend, se le puede pasar el argumento nombrado loc para indicar donde debe colocarse la leyenda.
Este argumento es una cadena de texto donde se indica la posicin. Hay varias opciones para la posicin: best trata de
encontrar la mejor posicin tomando en cuenta el espacio en blanco en a figura; upper right, lower right, upper left,
lower left, center left, center right, lower center, upper center colocan la leyenda en la posicin indicada. Para ver
toda la documentacin de la funcin legend se puede visitar este enlace. Por ejemplo, si queremos la leyenda en la esquina
superior derecha usamos loc='upper right':
In [55]: SIZE = (12, 6)
Out[55]:
<matplotlib.legend.Legend at 0x10a590b8>
Es claro que esta no es la mejor posicin porque la leyenda se encima con las curvas, pero ilustra el efecto.
Agreguemos una tercer grfica, la de la funcion tangente:
In [22]: y3 = tan(x)
Out[37]:
<matplotlib.legend.Legend at 0xce1d7f0>
Su grfica es la siguiente:
In [52]: SIZE = (12, 8)
[<matplotlib.lines.Line2D at 0x10a27908>]
En este ejemplo hemos definido el intervalos en x a visualizar, ms no el intervalo en y . En este caso matplotlib elige el mejor
intervalo en y segn los mismos valores que toma la funcin.
Grficas de dispersin
Hay veces que queremos graficar nicamente puntos que no pertenecen a una funcin, sino que son slo parejas de datos (x, y)
obtenidas por algn procedimiento desconocido.
Para esto existe una funcin en matplotlib: scatter. La funcin scatter se usa de manera muy similar a plot, es decir, se le
pasan las coordenadas x de los puntos, las coordenadas y y otra serie de argumentos similares a plot.
Por ejemplo, hagamos una grafica de puntos aleatorios. Generaremos una cantidad dada de nmeros aleatorios en el intervalo
[0, 1) con la funcin random_sample tanto para x como para y , y los graficaremos.
In [5]: num_puntos = 1000
x = random_sample(num_puntos)
y = random_sample(num_puntos)
Ahora hagamos la grfica de dispersin:
In [20]: SIZE = (12, 8)
<matplotlib.collections.PathCollection at 0xb6ea5c0>
Se puede especficar el color de la misma manera que en plot: con el argumento nombrado color. Los valores de color se
pueden especficar de la misma manera que en plot:
In [18]: # Hacemos la grfica de dispersin
scatter(x, y, color='r')
Out[18]:
<matplotlib.collections.PathCollection at 0xa593748>
<matplotlib.collections.PathCollection at 0xb93ae80>
Ademas podemos cambiar la forma de los marcadores con el argumento nombrado marker, al igual que se hizo con plot. Por
ejemplo, para usar marcadores verdes en forma de diamante:
In [23]: # Hacemos la grfica de dispersin
scatter(x, y, color='green', marker='D')
Out[23]:
<matplotlib.collections.PathCollection at 0xbe95cf8>
Podemos cambiar el tamao de los marcadores con el argumento nombrado s. Este es un real que especifica el rea del
marcador en puntos al cuadrado.
In [34]: scatter(x, y, color='#CC3399', marker='D', s=50)
Out[34]:
<matplotlib.collections.PathCollection at 0xd75fbe0>
<matplotlib.collections.PathCollection at 0xdc5e160>
Finalmente podemos darle un agradable efecto de transparencia a los puntos empleando el argumento nombrado alpha. El valor
de alpha debe ser un real entre 0 y 1, donde cero representa transparencia total, y uno significa que el marcador es totalmente
opaco.
In [38]: scatter(x, y, color='#CC3399', marker='D', s=50, alpha=0.5)
Out[38]:
# Marcadores semitransparentes
<matplotlib.collections.PathCollection at 0xdf2d8d0>
Out[45]:
<matplotlib.collections.PathCollection at 0x1066b2e8>
Al igual que con la funcin plot podemos especificar una etiqueta para cada serie de datos con el argumento nombrado label,
y agregar un leyenda con la funcin legend.
In [46]: SIZE = (12, 8)
Out[46]:
In [ ]:
<matplotlib.legend.Legend at 0x107b53c8>