给出以下水平条形图:
import matplotlib.pyplot as plt
from numpy import *
from scipy import *
bars = arange(5) + 0.1
vals = rand(5)
print bars, vals
plt.figure(figsize=(5,5), dpi=100)
spines = ["bottom"]
ax = plt.subplot(1, 1, 1)
for loc, spine in ax.spines.iteritems():
if loc not in spines:
spine.set_color('none')
# don't draw ytick marks
#ax.yaxis.set_tick_params(size=0)
ax.xaxis.set_ticks_position('bottom')
plt.barh(bars, vals, align="center")
plt.savefig("test.png")
怎么可以改变它而不是条形,只有顶部带有标记(例如'o')的虚线?如点图所示。感谢。
答案 0 :(得分:6)
不确定您的问题。你只需要改变:
plt.barh(bars, vals, align="center")
与
plt.plot(vals, bars, 'o--')
在OP澄清后编辑:如果您想要水平线,请使用:
plt.plot(vals, bars, 'o')
plt.hlines(bars, [0], vals, linestyles='dotted', lw=2)