Haga más de un gráfico en la misma celda del cuaderno IPython
He comenzado mi cuaderno IPython con
ipython notebook --pylab inline
Este es mi código en una celda
df['korisnika'].plot()
df['osiguranika'].plot()
Esto está funcionando bien, dibujará dos líneas, pero en el mismo gráfico.
Me gustaría dibujar cada línea en un gráfico separado. Y sería genial si los gráficos estuvieran uno al lado del otro, no uno tras otro.
Sé que puedo poner la segunda línea en la siguiente celda, y luego obtendría dos gráficos. Pero me gustaría que los gráficos cerca uno del otro, porque ellos representan la misma unidad lógica.
5 answers
Primero haga los ejes múltiples y páselos a la función de trazado de Pandas, como:
fig, axs = plt.subplots(1,2)
df['korisnika'].plot(ax=axs[0])
df['osiguranika'].plot(ax=axs[1])
Todavía le da 1 figura, pero con dos parcelas diferentes una al lado de la otra.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-06 06:18:52
También puede llamar a la función show() después de cada gráfico. por ejemplo,
plot(a)
show()
plot(b)
show()
Ver ejemplo en - http://nbviewer.ipython.org/6151560
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-04 19:21:25
Otra manera, para la variedad. Aunque esto es algo menos flexible que los otros. Desafortunadamente, los gráficos aparecen uno encima del otro, en lugar de uno al lado del otro, que usted solicitó en su pregunta original. Pero es muy conciso.
df.plot(subplots=True)
Si el dataframe tiene más de las dos series, y solo desea trazar esas dos, deberá reemplazar df
con df[['korisnika','osiguranika']]
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-26 09:03:01
Algo como esto:
import matplotlib.pyplot as plt
... code for plot 1 ...
plt.show()
... code for plot 2...
plt.show()
Tenga en cuenta que esto también funcionará si está utilizando el paquete seaborn
para trazar:
import matplotlib.pyplot as plt
import seaborn as sns
sns.barplot(... code for plot 1 ...) # plot 1
plt.show()
sns.barplot(... code for plot 2 ...) # plot 2
plt.show()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-24 21:42:04
No se si esta es una nueva funcionalidad, pero esto se trazará en figuras separadas:
df.plot(y='korisnika')
df.plot(y='osiguranika')
Mientras que esto trazará en la misma figura: (al igual que el código en el op)
df.plot(y=['korisnika','osiguranika'])
Encontré esta pregunta porque estaba usando el método anterior y quería que trazaran en la misma figura, por lo que su pregunta era en realidad mi respuesta.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-23 14:29:58