我有以下数据框:
land_cover 1 2 3 4 5 6 size
0 20 19.558872 6.856950 3.882243 1.743048 1.361306 1.026382 16.520265
1 30 9.499454 3.513521 1.849498 0.836386 0.659660 0.442690 8.652517
2 40 10.173790 3.123167 1.677257 0.860317 0.762718 0.560290 11.925280
3 50 10.098777 1.564575 1.280729 0.894287 0.884028 0.887448 12.647710
4 60 6.166109 1.588687 0.667839 0.230659 0.143044 0.070628 2.160922
5 110 17.846565 3.884678 2.202129 1.040551 0.843709 0.673298 30.406541
我想用以下方式绘制数据:
。 land_cover是x轴
。第1-6列应该是每个land_cover类别(行)的堆叠条形图
。并且“大小”列应该是第二个y轴,并且可以是每行的简单点符号,并且可以是连接点的平滑线
有什么想法吗?
答案 0 :(得分:2)
您的代码很好。我只再添加两行
import matplotlib.pyplot as plt
df.plot(x="land_cover", y=[1, 2, 3, 4, 5, 6], stacked=True, kind="bar")
ax = df['size'].plot(secondary_y=True, color='k', marker='o')
ax.set_ylabel('size')
plt.show()
答案 1 :(得分:0)
通常,只需将one extra argument添加到您的plot
通话中:secondary_y=['size']
。
在这种情况下,separate plot
比较容易,因为线与条等。