我正在尝试为数据框制作直方图:
Date d1 d2 h1 h2
2007-01-12 2.0 4.0 0.993508 0.984092
2007-01-16 7.0 3.0 0.983782 0.977396
2007-01-17 9.0 8.0 1.016174 0.999694
...
...
我的预期输出是在直方图的x轴上具有d1和d2列,并且h1和h2值是绘制的频率。
我已经研究了plt.hist(),pd.DataFrame.hist()和np.histogram(),但无法按照我想要的方式对数据进行整形。
我收到类似unsize对象的len()的错误,范围参数必须是有限的,等等。
最佳答案
听起来您想要的是条形图,而不是直方图。直方图通常作用于数据集合并为您绘制频率。如果您想指定频率,那么类似这样的事情(假设您有一个名为pandas.DataFrame
的df
):
import pandas
import numpy as np
from matplotlib import pyplot as plt
df = pandas.DataFrame(...)
positions = np.array(df[['d1','d2']]).flatten()
frequencies = np.array(df[['h1','h2']]).flatten()
plt.bar(positions, frequencies)
plt.show()
关于python - 在同一数据框中使用x和y绘制直方图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46656499/