まず、ランダムマーカーを選択する必要があります。利用可能なすべてのマーカーを含むmatplotlib.markers.MarkerStyle.markers
辞書を介して行うことができます。また、マーカは「ダニ」で始まる「何もない」を意味し、「キャレット」はドロップしなければならない。さらにinformationアバールマーカー。我々はデータフレームをプロットするために必要とするか、またはあなたがfilled_markers
で2番目のオプションを使用することができますどのように多くの彼らから選ぶのが有効なマーカーでリストを作ってみましょう、その後ランダム:
import matplotlib as mpl
import numpy as np
# create valid markers from mpl.markers
valid_markers = ([item[0] for item in mpl.markers.MarkerStyle.markers.items() if
item[1] is not 'nothing' and not item[1].startswith('tick')
and not item[1].startswith('caret')])
# use fillable markers
# valid_markers = mpl.markers.MarkerStyle.filled_markers
markers = np.random.choice(valid_markers, df.shape[1], replace=False)
例えば:
In [146]: list(markers)
Out[146]: ['H', '^', 'v', 's', '3', '.', '1', '_']
次に、あなたは可能性がマーカーのためにデータフレームをプロットし、set_marker
メソッドを使用して各行のマーカーを設定します。次に、あなたのプロットに凡例を追加することができます。
import pandas as pd
np.random.seed(2016)
df = pd.DataFrame(np.random.rand(10, 8))
ax = df.plot(kind='line')
for i, line in enumerate(ax.get_lines()):
line.set_marker(markers[i])
# for adding legend
ax.legend(ax.get_lines(), df.columns, loc='best')
オリジナル:
更新:あなたの答えのための
感謝を。パンダラインプロットに複数のマーカーを追加するにはどうすればよいですか?私はリストマーカー= ['d'、 'x'、...]を渡そうとしましたが、うまくいきませんでした。マーカーを追加する方法を知っていたら、あなたのアプローチを使用できます。リストの理解と一緒に。 –
マーカーを凡例に表示するか、プロット上に表示する必要がありますか? –
凡例にも。 –