如何在python中的条形图上添加标记?

时间:2016-12-14 05:41:10

标签: python-2.7 matplotlib

我制作了一个水平条形图,现在我需要在条形图上添加标记。我怎么能这样做?

我到目前为止的代码如下所示:

enter image description here

def plot_comparison(): 
lengths = [11380, 44547, 166616, 184373, 193068, 258004, 369582, 462795, 503099, 581158, 660724, 671812, 918449]

y_pos = np.arange(len(length))
error = np.random.rand(len(length))

plt.barh(y_pos, length, xerr=error, align='center', alpha=0.4)
plt.yticks(y_pos, length)
plt.xlabel('Lengths')
plt.title('Comparison of different cuts')
plt.show()

2 个答案:

答案 0 :(得分:3)

您只需添加plot命令,即可针对y_pos绘制lengths。确保指定制作者并将linestyle设置为""(或"none"),否则标记将通过直线连接。
以下代码可能是您之后的代码。

import matplotlib.pyplot as plt
import numpy as np

lengths = [11380, 44547, 166616, 184373, 193068, 258004, 369582, 462795, 503099, 581158, 660724, 671812, 918449]

y_pos = np.arange(len(lengths))
error = np.array(lengths)*0.08

plt.barh(y_pos, lengths, xerr=error, align='center', alpha=0.4)
plt.plot(lengths, y_pos, marker="D", linestyle="", alpha=0.8, color="r")
plt.yticks(y_pos, lengths)
plt.xlabel('Lengths')
plt.title('Comparison of different cuts')
plt.show()

enter image description here

答案 1 :(得分:0)

试试这个例子http://matplotlib.org/examples/api/barchart_demo.html

或者你可以做的另一件事就是在条形图上简单地放置一个包含相同数据的折线图。