代码之家  ›  专栏  ›  技术社区  ›  Christin Abel

用两个y轴绘制数据帧

  •  1
  • Christin Abel  · 技术社区  · 8 年前

    我有以下数据框:

       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 
    

    我想以这样的方式绘制数据:
    . 土地覆盖是X轴
    . 1-6号地块应按土地覆盖等级(行)堆放条形图
    . 列“大小”应该是第二个y轴,可以是每个行的简单点符号,另外还可以是连接点的平滑线。

    有什么想法吗?

    1 回复  |  直到 8 年前
        1
  •  7
  •   RobJan    8 年前

    你的代码很好。我只加了两行

     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