2016-11-30 5 views
2

xの点と対応するデータのセットyがあるとします。私は今散布図でplt.scatter(x,y)これらをプロットします。私が得た図には、matplotlibによって生成されたx軸ティックが含まれています。私は自動的なティッキングを達成する方法がありますが、x軸から垂直線を散布図の点に加えてラベルを付ける方法はありますか?散布図のポイントに対する垂直線

+0

あなたが所望の出力の数字を追加することができた場合は、あなたの質問をお願いし – eyllanesc

+0

を説明し、私は別の色で各点をプロットする必要がある場合はどのような偉大な – eyllanesc

答えて

2

このようにしますか?

altered scattergram

そうならば、ここでの必需品です。

import matplotlib.pyplot as plt 
import numpy as np 
from matplotlib import collections as matcoll 

x = np.arange(1,13) 
y = [15,14,15,18,21,25,27,26,24,20,18,16] 

lines = [] 
for i in range(len(x)): 
    pair=[(x[i],0), (x[i], y[i])] 
    lines.append(pair) 

linecoll = matcoll.LineCollection(lines) 
fig, ax = plt.subplots() 
ax.add_collection(linecoll) 

plt.scatter(x,y) 

plt.xticks(x) 
plt.ylim(0,30) 

plt.show() 

補遺:

色のドットのために、とplt.scatter(x,y)を置き換える:

specifying coloursを参照を指定するオプションの方法については
colours = ['Crimson', 'Blue', 'Fuchsia', 'Gold', 'Green', 'Tomato', 'Indigo', 'Turquoise', 'Brown', 'Wheat', 'Yellow',] 
plt.scatter(x,y,c=colours) 
  • X11の色名とそれに対応する16進コードの一覧については、X11 coloursを参照してください。
  • matplotlibは 'Hot Pink'のような2つの単語の色名を嫌うようです。
+0

でしょうか? –

+0

回答補遺をご覧ください。 –

2

まあ、stem方法がある、はるかに簡単に使用する:あなたはラインの上に箇条書きにしたい場合は、単にmarkerfmtを削除

import matplotlib.pyplot as plt 
import numpy as np 

x, y = np.random.random((2, 20)) 

fig, ax = plt.subplots() 
ax.stem(x, y, markerfmt=' ') 
plt.show()