Сделайте несколько диаграмм в одной ячейке Notebook IPython
Я начал свой IPython Notebook с помощью
ipython notebook --pylab inline
Это мой код в одной ячейке
df['korisnika'].plot()
df['osiguranika'].plot()
Это нормально работает, он будет рисовать две строки, но на одной диаграмме.
Я хотел бы выделить каждую строку на отдельной диаграмме.
И было бы замечательно, если бы диаграммы были рядом друг с другом, а не друг с другом.
Я знаю, что я могу поместить вторую строку в следующую ячейку, а затем я получу две диаграммы. Но я хотел бы, чтобы диаграммы были близки друг к другу, потому что они представляют собой одну и ту же логическую единицу.
Ответы
Ответ 1
Сначала сделайте несколько осей и передайте их в функцию графика Pandas, например:
fig, axs = plt.subplots(1,2)
df['korisnika'].plot(ax=axs[0])
df['osiguranika'].plot(ax=axs[1])
Он по-прежнему дает вам 1 рисунок, но с двумя разными графиками рядом друг с другом.
Ответ 2
Вы также можете вызвать функцию show() после каждого графика.
например
plot(a)
show()
plot(b)
show()
см. пример при - http://nbviewer.ipython.org/6151560
Ответ 3
Другой способ, для разнообразия. Хотя это несколько менее гибко, чем другие. К сожалению, графики появляются один над другим, а не бок о бок, который вы запросили в исходном вопросе. Но это очень красноречиво.
df.plot(subplots=True)
Если в кадре данных больше, чем две серии, и вы хотите только построить эти два, вам нужно заменить df
на df[['korisnika','osiguranika']]
.
Ответ 4
Я не знаю, является ли это новой функциональностью, но это будет отображаться на отдельных цифрах:
df.plot(y='korisnika')
df.plot(y='osiguranika')
в то время как это будет отображаться на том же рисунке: (как и код в op)
df.plot(y=['korisnika','osiguranika'])
Я нашел этот вопрос, потому что использовал прежний метод и хотел, чтобы они отображались на одной фигуре, поэтому ваш вопрос был на самом деле моим ответом.
Ответ 5
Что-то вроде этого:
import matplotlib.pyplot as plt
... code for plot 1 ...
plt.show()
... code for plot 2...
plt.show()
Обратите внимание, что это также будет работать, если вы используете пакет seaborn
для построения:
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()