【问题标题】:Plotting a histogram with python用python绘制直方图
【发布时间】:2021-05-24 15:19:59
【问题描述】:

我只想在 python 中绘制一个非常简单的直方图,但它不起作用。

我正在通过 excel 导入数据并将其转换为 pd 数据框

data = pd.read_excel ("test.xlsx",sheet_name='new_tests', na_filter=True)
data_1= pd.DataFrame(data , columns=['x','y'])

x 是 1,2,3,....,100 形式的列表,y 是我的模型的对应事件,例如 107, 208,....,当然还有 100 个条目。

现在我想用例如 10 个 bin 绘制一个简单的直方图 - 这意味着在第一个 bin 中是来自 [1,2,....,10]=[107,208,...] 的事件总和但是

plt.hist(x,y,bins=20) 不起作用,因为绘图是空的。

【问题讨论】:

标签: python pandas numpy


【解决方案1】:

From the documentation of plt.hist

matplotlib.pyplot.hist(x, bins=None, range=None, density=False, 权重=无,累积=假,底部=无,histt​​ype='bar', align='mid',orientation='vertical',rwidth=None,log=False, 颜色=无,标签=无,堆叠=假,*,数据=无,**kwargs)

x(n,) 数组或 (n,) 数组序列 输入值,这需要 单个数组或数组序列,不需要是 长度相同。

binsint 或 sequence 或 str,默认:rcParams["hist.bins"](默认: 10) 如果 bins 是一个整数,它定义了等宽 bins 的数量 范围内。

如果 bins 是一个序列,它定义了 bin 边缘,包括左边 第一个 bin 的边缘和最后一个 bin 的右边缘;在这 在这种情况下,bin 的间距可能不相等。除了最后一个(最右边) bin 是半开的。

按照文档,您正在使用 y 设置 bin 边缘。您应该只是在 plt.hist 函数中输入记录的数据值作为 x 并设置 bin 的数量。试试:

plt.hist(y, bins=20)

【讨论】:

  • 不,它不起作用,因为它计算了多少次,例如值“5”在 y 值列表中
猜你喜欢
  • 2018-05-23
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2012-03-12
相关资源
最近更新 更多