前提・実現したいこと
現在、matplotlibのplot_dateを使用してX軸に時間データ、Y列に適当な値を用いてプロットし、グラフを出力しています。
プロット時にalphaで透明化を行っているのですが、凡例のマーカー表示(A,B)も透明化してしまいます。
そこで凡例のマーカーは透明化させずに表示したいのですがうまくできません。
matplotlibのplot_dateにおいてalpha設定プロット時に凡例のマーカーは透明化させずに表示させるにはどうすればいいのでしょうか。
該当のソースコード
Python
1from datetime import datetime 2import matplotlib.pyplot as plt 3xa = [] 4xb = [] 5xa.append(datetime.strptime("2019-01-01 12:06:10",'%Y-%m-%d %H:%M:%S')) 6xa.append(datetime.strptime("2019-01-01 12:06:15",'%Y-%m-%d %H:%M:%S')) 7xa.append(datetime.strptime("2019-01-01 12:06:20",'%Y-%m-%d %H:%M:%S')) 8xb.append(datetime.strptime("2019-01-01 12:07:10",'%Y-%m-%d %H:%M:%S')) 9xb.append(datetime.strptime("2019-01-01 12:07:15",'%Y-%m-%d %H:%M:%S')) 10xb.append(datetime.strptime("2019-01-01 12:07:20",'%Y-%m-%d %H:%M:%S')) 11 12ya = [1,2,3] 13yb = [5,6,7] 14 15fig = plt.figure(figsize = (8,5)) 16ax = fig.add_subplot(1,1,1) 17ax.plot_date(xa,ya,label = ["A"], ms = 10, alpha = 0.1) 18ax.plot_date(xb,yb,label = ["B"], ms = 10, alpha = 0.1) 19leg = ax.legend() 20plt.show()
試したこと
他のプロットデータを用いて散布図のscatterで試した時はplt.show()の前に以下のコードを追記することで凡例マーカー表示の透明化を防ぐことができましたが、plot_dateではできませんでした。
append
1for lh in leg.legendHandles: 2 lh.set_alpha(1)
補足情報(FW/ツールのバージョンなど)
言語:Python3.7.1
エディタ:Spyder3.3.2(Anaconda3付属)
OS:Windows10
Spyder3.3.2のコンソール上でコードを実行
回答1件
あなたの回答
tips
プレビュー