来自Pandas DataFrame,Python的区域高程分布直方图

时间:2019-06-27 08:50:44

标签: pandas matplotlib histogram

我有一个带有'area'和'elevation'列的pandas DataFrame。我试图显示相对于海拔的区域分布。我认为这应该很简单,但是我没有找到一种方法。

我的数据框看起来像:

df:

    area              ele
0   97395.147254    6017.877745
1   69704.264405    5974.124316
2   71490.518833    5838.256686
3   23235.692475    5793.837788
4   65254.056661    5787.050911
5   17407.853780    5734.049234
6   17556.149643    6106.984128
7   33557.481232    5716.453589
8   37932.703188    5870.938016
9   19417.303768    5987.567275
10  26290.210275    6232.612380
11  45211.104174    5777.812375
12  35457.722243    5707.920921
13  83353.269135    5778.740416
14  68906.869455    5951.361295
15  66991.699542    6146.242249
16  43415.962994    6041.594263
17  74985.484055    5835.818736
18  53145.779672    5952.993800
19  36893.436921    6008.634508
20  59647.991246    5883.823537
21  53032.278932    5771.375295

显然 df.hist()无效。我正在寻找类似的东西: enter image description here

该区域应在y轴上。

任何对此的帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

import matplotlib.pyplot as plt
plt.hist(df.ele,bins=[100*x+5500 for x in range(0,10)],weights=df.area)

enter image description here

说明:
[100*x+5500 for x in range(0,10)]构成每100 m海拔高度的直方图的分箱:5500、5600,...,6400。这不是必需的,但会使直方图看起来更好,否则分箱将不会以整数结束。
正如上面问题的注释中已经提到的,“总结”是通过使用weights关键字完成的。有关更多详细信息,请参见pyplot.hist documentation