однолинейная версия решения arulmr
def diff(listA, listB):
return set(listA) - set(listB) | set(listA) -set(listB)
Я тоже хотел знать, однако все существующие ответы не предназначены для отображения штриха и линейного графика на одном и том же сюжете, но на другой оси.
, поэтому я сам искал ответ и нашел пример, который работает - Plot Pandas DataFrame как Bar и Line на одном и том же графике . Я могу подтвердить, что он работает .
Что меня сбило с толку, тот же самый код работает там , но здесь не работает . I.e., я скопировал код OP и могу убедиться, что он не работает как ожидалось .
Единственное, о чем я мог подумать, это добавить индексный столбец в Df[['A','B']]
и Df[['C','D']]
, но я не знаю, как, поскольку столбец индекса не имеет имени для меня, чтобы добавить .
Сегодня я понимаю, что даже я могу заставить его работать, реальная проблема заключается в том, что Df[['A','B']]
дает группированную (кластерную) гистограмму, но сгруппированная (кластерная) линейная диаграмма не поддерживается.
Вы также можете попробовать следующее:
fig = plt.figure()
ax = DF['A','B'].plot(kind="bar");plt.xticks(rotation=0)
ax2 = ax.twinx()
ax2.plot(ax.get_xticks(),DF['C','D'],marker='o')
Вы можете сделать что-то подобное, как на одном рисунке:
In [4]: Df = pd.DataFrame(data=np.random.randn(10,4), index=pd.DatetimeIndex(start='2005', freq='M', periods=10), columns=['A','B','C','D'])
In [5]: fig, ax = plt.subplots(2, 1) # you can pass sharex=True, sharey=True if you want to share axes.
In [6]: Df[['A','B']].plot(kind='bar', ax=ax[0])
Out[6]: <matplotlib.axes.AxesSubplot at 0x10cf011d0>
In [7]: Df[['C','D']].plot(color=['r', 'c'], ax=ax[1])
Out[7]: <matplotlib.axes.AxesSubplot at 0x10a656ed0>
ax.plot(Df.index.values, DF[['C', 'D']], ...)
, это работает.
– naught101
9 November 2015 в 00:25
ax.plot(Df.index.values, Df[['C', 'D']], linestyle='--', marker='o')
, но все еще не работает для меня .
– xpt
31 December 2015 в 18:39