Seaborn-figure-aesthetic
シーボーン-フィギュア美学
データの視覚化は1つのステップであり、視覚化されたデータをさらに楽しいものにすることは別のステップです。 視覚化は、視聴者に定量的な洞察を伝え、視聴者の注意を引くうえで重要な役割を果たします。
美学とは、特に芸術において、美の性質と評価に関する一連の原則を意味します。 視覚化は、効果的で最も簡単な方法でデータを表現する技術です。
Matplotlibライブラリはカスタマイズを高度にサポートしていますが、魅力的で予想されるプロットを実現するために調整する設定を知ることは、それを利用するために知っておくべきことです。 Matplotlibとは異なり、Seabornには、カスタマイズされたテーマと、Matplotlibの図の外観をカスタマイズおよび制御するための高レベルインターフェイスが満載されています。
例
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i *.5)* (7 - i) * flip)
sinplot()
plt.show()
これは、プロットがデフォルトのMatplotlibでどのように見えるかです-
同じプロットをSeabornのデフォルトに変更するには、* set()*関数を使用します-
例
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i *.5)* (7 - i) * flip)
import seaborn as sb
sb.set()
sinplot()
plt.show()
出力
上記の2つの図は、デフォルトのMatplotlibプロットとSeabornプロットの違いを示しています。 データの表現は同じですが、表現スタイルは両方で異なります。
基本的に、SeabornはMatplotlibパラメーターを2つのグループに分割します。
- 印刷スタイル
- プロットスケール
シーボーンフィギュアスタイル
スタイルを操作するためのインターフェースは* set_style()*です。 この関数を使用して、プロットのテーマを設定できます。 最新の更新バージョンごとに、利用可能な5つのテーマを以下に示します。
- ダークグリッド
- ホワイトグリッド
- Dark
- 白
- 目盛り
上記のリストからテーマを適用してみましょう。 プロットのデフォルトテーマは、前の例で見た darkgrid です。
例
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i *.5)* (7 - i) * flip)
import seaborn as sb
sb.set_style("whitegrid")
sinplot()
plt.show()
出力
上記の2つのプロットの違いは背景色です
軸スパインの削除
白とティックのテーマでは、* despine()*関数を使用して、上部および右側の軸スパインを削除できます。
例
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i *.5)* (7 - i) *flip)
import seaborn as sb
sb.set_style("white")
sinplot()
sb.despine()
plt.show()
出力
通常のプロットでは、左軸と下軸のみを使用します。* despine()*関数を使用すると、不必要な右軸と上軸のスパインを回避できますが、これはMatplotlibではサポートされていません。
要素をオーバーライドする
Seabornスタイルをカスタマイズする場合は、パラメーターの辞書を* set_style()関数に渡すことができます。 使用可能なパラメーターは、 axes_style()*関数を使用して表示されます。
例
import seaborn as sb
print sb.axes_style
出力
{'axes.axisbelow' : False,
'axes.edgecolor' : 'white',
'axes.facecolor' : '#EAEAF2',
'axes.grid' : True,
'axes.labelcolor' : '.15',
'axes.linewidth' : 0.0,
'figure.facecolor' : 'white',
'font.family' : [u'sans-serif'],
'font.sans-serif' : [u'Arial', u'Liberation
Sans', u'Bitstream Vera Sans', u'sans-serif'],
'grid.color' : 'white',
'grid.linestyle' : u'-',
'image.cmap' : u'Greys',
'legend.frameon' : False,
'legend.numpoints' : 1,
'legend.scatterpoints': 1,
'lines.solid_capstyle': u'round',
'text.color' : '.15',
'xtick.color' : '.15',
'xtick.direction' : u'out',
'xtick.major.size' : 0.0,
'xtick.minor.size' : 0.0,
'ytick.color' : '.15',
'ytick.direction' : u'out',
'ytick.major.size' : 0.0,
'ytick.minor.size' : 0.0}
パラメータの値を変更すると、印刷スタイルが変更されます。
例
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i *.5)* (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
出力
プロット要素のスケーリング
また、プロット要素を制御し、* set_context()*関数を使用してプロットのスケールを制御できます。 コンテキストの4つのプリセットテンプレートがあり、相対的なサイズに基づいて、コンテキストの名前は次のとおりです。
- 紙
- ノート
- Talk *ポスター
デフォルトでは、コンテキストはノートブックに設定されています。上記のプロットで使用されました。
例
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i* .5) *(7 - i)* flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
出力
実際のプロットの出力サイズは、上記のプロットと比較するとサイズが大きくなります。
注-Webページ上の画像のスケーリングにより、サンプルプロットの実際の違いを見逃す可能性があります。