我将如何向该直方图添加一条水平线?我已经尝试了常用的方法(适用于条形图),但是由于 y 轴以百分比形式表示(我假设),因此无法绘制线条。我试图绘制一条从 11 小时(x 线)到 22 小时(x 线)之间的线,以描绘实验条件的变化。有人知道该怎么办吗?谢谢!
probability_list = np.array(probability_list, dtype=float)
x = 24
f, ax = plt.subplots(1, 1, figsize=(10, 5))
heights, bins = np.histogram(probability_list, bins=len(list(set(probability_list))))
percent = [i / len(dayammount) * 100 for i in heights]
ax.bar(bins[:-1], percent, width=.025, align="edge")
vals = ax.get_yticks()
ax.set_yticklabels(['%1.2f%%' % i for i in vals])
plt.xlim(xmin=0, xmax=24)
plt.xticks(range(0, 25))
plt.xlabel('Time (Hours)')
plt.ylabel('Probability of Sound (%)')
plt.show()
Run Code Online (Sandbox Code Playgroud)
然而,由于 y 轴以百分比表示(我假设),因此该线不会绘制
heights一般来说,您转换为-- matplotlib并不重要,它percents只会看到一个值列表。
目前尚不清楚您到目前为止尝试过什么,但这里有几个选项:
用于hlines绘制有界水平线,例如y=2从xmin=11到xmax=22:
ax.hlines(y=2, xmin=11, xmax=22, colors='k', linestyles='--')
Run Code Online (Sandbox Code Playgroud)
或者使用普通的plot:
ax.plot([11, 22], [2, 2], 'k--')
Run Code Online (Sandbox Code Playgroud)
我没有你的原始数据,但这是一些模拟数据的输出: