DISTRICT 37

なにか

seabornを使うと凡例が見づらくなる

ということでplotsする際のテクニックを軽く

凡例を描画する際に一言二言加える

seabornをmatplotlibと併せて使っているわけだが、凡例を描画すると背景に消えてしまう事がある。今回はそれを解決した。

まずはデータの準備。適当に連続した数字を。

x = np.arange(0, 10, 0.1)
y1 = np.arange(0, 10, 0.1)
y2 = np.arange(10, 0, -0.1)

これをseabornを使わずに描画

import matplotlib.pyplot as plt
plt.plot(x, y1, label="legend_1")
plt.plot(x, y2, linestyle="--", label="legend_2")
plt.legend(loc="best")
plt.show()

こうなる。凡例が見やすい。

f:id:dragstarclassic:20180109144208p:plain

seabornを使うと、、、

import matplotlib.pyplot as plt
import seaborn as sns
plt.plot(x, y1, label="legend_1")
plt.plot(x, y2, linestyle="--", label="legend_2")
plt.legend(loc="best")
plt.show()

凡例が見にくい(個人差はあります)。

f:id:dragstarclassic:20180109144517p:plain

ということでlegendの指定にちょっと書き加える。

import matplotlib.pyplot as plt
import seaborn as sns
plt.plot(x, y1, label="legend_1")
plt.plot(x, y2, linestyle="--", label="legend_2")
plt.legend(loc="best", frameon=True, edgecolor="blue")
plt.show()

こうなる。ちょっと見やすくなる(個人差はあります)。

f:id:dragstarclassic:20180109144632p:plain

だいたいは

plt.legend(frameon=True)

こうするだけでだいぶ見やすくなるわけだが、個人的には枠線があると見やすいと思うので、枠線の色も加えた。

他にもオプションがあるので、リンク先のAPIを参考に。

legend and legend_handler — Matplotlib 2.1.1 documentation

seabornは奥が深い

コード