python - 绘制带有两个 y 轴的数据框

标签 python pandas dataframe matplotlib multiple-axes

我有以下数据框:

   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 轴
. cols 1 - 6 应该是每个 land_cover 类(行)的堆叠条形图
. “大小”列应该是第二个 y 轴,可以是每一行的简单点符号,另外还有一条连接点的平滑线

有什么想法吗?

最佳答案

您的代码非常好。我只加了两行

 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()

plot

关于python - 绘制带有两个 y 轴的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51784495/

相关文章:

python - 标记数据时出错。 C 错误 : Expected n fields in line j, 通过忽略额外列看到 k 修复了吗?

python - scipy稀疏矩阵: Index out of range

python - Pandas 分组依据具有相同值的多个组

pandas - 使用色调从seaborn 绘制多个箱线图

python - Pandas - 用 groupby 均值替换异常值

Python Pandas 匹配两个索引和列的值

python - 替换 DataFrame 中时间戳的日期部分

python - 如果列表中的9个字符串全部被替换: do something

python - 正则表达式用于清除开头或结尾处的空格或其他字符中的单词(带重音)和数字字符串

python - Django 仅序列化一个字段而不是相关字段中的整个模型(只读)