熊猫数据框线图和堆积条形图

时间:2018-08-14 11:49:04

标签: python pandas dataframe matplotlib plot

情况: 我有一个非常小的数据集,带有年列和指示二进制列的事件成功或失败。

enter image description here

我从二进制列创建了两个系列,分别计算成功和失败事件。

成功事件:

success_count = hungary_data[hungary_data['success']==1]["iyear"].value_counts().sort_index()
success_count

输出:
enter image description here

失败的事件:

fail_count = hungary_data[hungary_data['success']==0]["iyear"].value_counts().sort_index()
fail_count


输出:
enter image description here

问题: 我的问题是我无法在线图上显示这两个系列,也无法在堆叠的条形图中显示。

这是我的代码和折线图的输出:

plt.plot(success_count, label = "Sikeres támadások")
plt.plot(fail_count, label = "Sikertelen támadások")
plt.ylim(ymin=0)
plt.legend(loc=2)
plt.show()


输出:
enter image description here


如您所见,失败计数根本没有显示(但是有一个图例),年份以半增量显示(这也是错误的)。

我的堆积杠尝试也失败了:

plt.bar([1989,1990,1991], success_count, label = "Sikeres támadások")
plt.bar([1989,1990,1991], fail_count, label = "Sikertelen támadások")
plt.legend(loc=2)
plt.show()


输出:
enter image description here
问题:

  1. 为了同时显示成功事件和失败事件的线图,我的代码应该是什么样子(当一年没有失败尝试时,应该为零)?
  2. 为什么年份以半增量显示(年份不应该有小数),如何避免呢?
  3. 在堆叠条形的情况下,我的代码应如何显示?

谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

尝试以下操作。

首先,重命名success_countfail_count系列:

success_count.rename('Sikeres támadások', inplace=True)
fail_count.rename('Sikertelen támadások', inplace=True)

然后,您可以绘制两者中的concat

pd.concat([success_count, fail_count],axis=1).plot(kind='bar', stacked='True')