在Python中使用自定义bin值绘制2D直方图

时间:2020-06-21 11:43:45

标签: python pandas dataframe matplotlib

我有以下具有数千行的pandas数据框。

enter image description here

我想基于“ mains:active_power”和“ mains:reactive_power”绘制二维直方图。 我使用matplotlib库在Python中绘制2D直方图:

import matplotlib.pyplot as plt
fig = plt.subplots(figsize =(10, 7)) 
plt.hist2d(df["mains:active_power"], df["mains:reactive_power"]) 
plt.title("Simple 2D Histogram")  
plt.show()

它绘制成功,但是我想为x_bin和y_bin定制bin值。 我使用了以下命令:

plt.hist2d(df["mains:active_power"], df["mains:reactive_power"], bins =[x_bins, y_bins]).

x_bins,y_bins是包含bin值的NumPy数组。另外,x_bins,y_bins的大小等于数据帧(df)的长度

每次运行此命令时,都会出现错误:

ValueError:bins[0]在数组时必须单调递增

如何解决此问题?

谢谢:)

1 个答案:

答案 0 :(得分:0)

我认为plt.bar将是一个更好的选择。

width = bins[1] - bins[0]
plt.bar(bins, hist, align="edge", width=width)
plt.show()

希望我能帮上忙。有人问过同样的问题,以供进一步参考。 bins must increase monotonically