给出以下水平条形图:
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")
Run Code Online (Sandbox Code Playgroud)
如何更改,以便在顶部只有带有标记(例如"o")的虚线而不是条形图?如点图所示.谢谢.
不确定你的问题.你只需要改变:
plt.barh(bars, vals, align="center")
Run Code Online (Sandbox Code Playgroud)
同
plt.plot(vals, bars, 'o--')
Run Code Online (Sandbox Code Playgroud)
OP澄清后编辑:如果您想要水平线,请使用:
plt.plot(vals, bars, 'o')
plt.hlines(bars, [0], vals, linestyles='dotted', lw=2)
Run Code Online (Sandbox Code Playgroud)
