2012-01-29 7 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") 

OPの明確化の後に編集
plt.plot(vals, bars, 'o--') 

で:あなたが水平線、使用したい場合:あなただけ変更する必要が

plt.plot(vals, bars, 'o') 
plt.hlines(bars, [0], vals, linestyles='dotted', lw=2) 

enter image description here

+0

おかげで、しかし、私は曲線ではなくバーになりたいので、点線は地平線に伸びていなければなりませんx = 0からxに沿ったバーの値までのタリー、それは垂直にプロットされるべきではありません – user248237dfsf

関連する問題