2012-01-29 31 views
3

給定以下水平條形圖:將條形圖轉換爲matplotlib中的點圖嗎?

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」)?如在點圖中。謝謝。

回答

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) 

enter image description here

+0

感謝,但我想成爲一個酒吧而不是曲線,所以虛線應該延伸到地平線從x = 0到x沿橫條的值,它不應該垂直繪製 – user248237dfsf 2012-01-29 20:17:01