【问题标题】:Displaying bins correctly with pyplot使用 pyplot 正确显示 bin
【发布时间】:2012-11-09 05:49:19
【问题描述】:

可能是一个带有简单修复的简单问题,但我对分箱的实际工作方式感到困惑。我想绘制一个相当简单的直方图。 x 轴应该只有两个值,0 和 1,y 轴的浮点数介于 0 和 1.0 之间,表示每个值的频率。 0 和 1 都是数组中唯一的值,但是当我显示直方图时,这些 bin 似乎没有与 0 和 1 对齐,并且 x 轴上有几个不需要的刻度线。如何制作此图,以便在 x 轴(0 和 1)上仅显示两个刻度,并且每个值的相应频率列正确显示在刻度上方?

这是我的代码:

trials = []
for i in range (m):
    trials.append(bernoulli_trial(p))
plt.figure(1)
plt.hist(trials, bins=2, align="mid", weights=np.zeros_like(trials) + 1. / len(trials))
plt.ylim(0,1.0)
plt.title("Bernoulli Distribution with p = " + str(p))
plt.xlabel("Outcome")
plt.ylabel("Probability")    
plt.show()

谁能提供任何关于我在这里做错了什么的见解?

【问题讨论】:

标签: python matplotlib histogram


【解决方案1】:
plt.figure(1)
plt.hist(trials, bins=2, align="mid",
         weights=np.zeros_like(trials) + 1. / len(trials))


# ------------------------------
# New lines to add tick marks as requested
tick_locs = [0.25, 0.75]
tick_lbls = ['0','1']
plt.xticks(tick_locs, tick_lbls)
# ------------------------------

plt.ylim(0,1.0)
plt.title("Bernoulli Distribution with p = " + str(p))
plt.xlabel("Outcome")
plt.ylabel("Probability")    
plt.show()

【讨论】:

  • 大声哇完美修复。我之前尝试过使用 xticks,但我想我可能格式不正确,所以它真的弄乱了布局。非常感谢!
猜你喜欢
  • 2013-02-17
  • 2014-07-08
  • 2019-05-08
  • 2017-11-28
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
相关资源
最近更新 更多