我正在尝试为数据框制作直方图:

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.DataFramedf):

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/

10-15 23:30