回答:
キーワードargs linestyle
を指定するかmarker
、への呼び出しで使用しplot
ます。
たとえば、破線と青い円のマーカーを使用します。
plt.plot(range(10), linestyle='--', marker='o', color='b')
同じことのショートカット呼び出し:
plt.plot(range(10), '--bo')
以下は、可能な線とマーカーのスタイルのリストです。
================ ===============================
character description
================ ===============================
- solid line style
-- dashed line style
-. dash-dot line style
: dotted line style
. point marker
, pixel marker
o circle marker
v triangle_down marker
^ triangle_up marker
< triangle_left marker
> triangle_right marker
1 tri_down marker
2 tri_up marker
3 tri_left marker
4 tri_right marker
s square marker
p pentagon marker
* star marker
h hexagon1 marker
H hexagon2 marker
+ plus marker
x x marker
D diamond marker
d thin_diamond marker
| vline marker
_ hline marker
================ ===============================
編集: コメントで要求されているように、ポイントの任意のサブセットをマークする例を使用して:
import numpy as np
import matplotlib.pyplot as plt
xs = np.linspace(-np.pi, np.pi, 30)
ys = np.sin(xs)
markers_on = [12, 17, 18, 19]
plt.plot(xs, ys, '-gD', markevery=markers_on)
plt.show()
markevery
kwarg を使用したこの最後の例は、この機能ブランチのマージにより、1.4以降で可能です。古いバージョンのmatplotlibを使用している場合でも、折れ線グラフに散布図を重ねることで結果を得ることができます。詳細については、編集履歴を参照してください。
matplotlib.markers.MarkerStyle.markers
、利用可能なすべてのマーカーを表示することもできます。これにより、上記のwimと同様の辞書が返されます。
すべてのマーカーの名前と説明を示す画像があります。
import matplotlib.pylab as plt
markers=['.',',','o','v','^','<','>','1','2','3','4','8','s','p','P','*','h','H','+','x','X','D','d','|','_']
descriptions=['point', 'pixel', 'circle', 'triangle_down', 'triangle_up','triangle_left', 'triangle_right', 'tri_down', 'tri_up', 'tri_left','tri_right', 'octagon', 'square', 'pentagon', 'plus (filled)','star', 'hexagon1', 'hexagon2', 'plus', 'x', 'x (filled)','diamond', 'thin_diamond', 'vline', 'hline']
x=[]
y=[]
for i in range(5):
for j in range(5):
x.append(i)
y.append(j)
plt.figure()
for i,j,m,l in zip(x,y,markers,descriptions):
plt.scatter(i,j,marker=m)
plt.text(i-0.15,j+0.15,s=m+' : '+l)
plt.axis([-0.1,4.8,-0.1,4.5])
plt.tight_layout()
plt.axis('off')
plt.show()
今後の参考のために- Line2D
によって返されるアーティストにplot()
は、set_markevery()
特定のポイントにのみマーカーを設定できるメソッドもあります。https://matplotlib.org/api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2Dを参照してください。 set_markevery
特定のポイントマーカーの形状、サイズを変更する簡単な方法は、最初に他のすべてのデータと共にプロットし、次にそのポイント(または複数のポイントのスタイルを変更する場合はポイントのセット)のみでもう1つプロットすることです。 。2番目のポイントのマーカー形状を変更するとします。
x = [1,2,3,4,5]
y = [2,1,3,6,7]
plt.plot(x, y, "-o")
x0 = [2]
y0 = [1]
plt.plot(x0, y0, "s")
plt.show()
結果は次のとおりです。 複数のマーカーを使用したプロット