我制作了一个水平条形图,现在我需要在条形图上添加标记。我怎么能这样做?
我到目前为止的代码如下所示:
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()
答案 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()
答案 1 :(得分:0)
试试这个例子http://matplotlib.org/examples/api/barchart_demo.html
或者你可以做的另一件事就是在条形图上简单地放置一个包含相同数据的折线图。