web-dev-qa-db-ja.com

Seaborn構成はデフォルトのmatplotlibを非表示にします

Seaborn 科学的なデータ表現にとって非常に興味深い、いくつかのグラフィックを提供します。したがって、他のカスタマイズされたmatplotlibプロットを散在させたこれらのSeabornグラフィックを使い始めました。問題は、私が一度やったことです:

import seaborn as sb

このインポートは、seabornのグラフィックパラメータをグローバルに設定しているようです。インポートの下にあるすべてのmatplotlibグラフィックは、seabornパラメータを取得します(背景が灰色、linewithdの変更など)。

SOには 答え matplotlib構成で海のプロットを作成する方法を説明していますが、両方のライブラリを一緒に使用するときにmatplotlib構成パラメーターを変更しないでおくことが必要です。同時に、必要に応じて、オリジナルの海のプロットを作成することができます。

19
joaquin

seabornバージョン0.8(2017年7月) 現在、インポート時にグラフスタイルは変更されていません:

Seabornがインポートされるときに、デフォルトの[seaborn]スタイルは適用されなくなりました。 set()または1つ以上のset_style()set_context()、およびset_palette()。これに対応して、_seaborn.apionly_モジュールは非推奨になりました。

plt.style.use()を使用して任意のプロットのスタイルを選択できます。

_import matplotlib.pyplot as plt
import seaborn as sns

plt.style.use('seaborn')     # switch to seaborn style
# plot code
# ...

plt.style.use('default')     # switches back to matplotlib style
# plot code
# ...


# to see all available styles
print(plt.style.available)
_

plt.style() についてもっと読む。

8

seabornスタイルを使用したくないが、seaborn関数の一部が必要な場合は、次の行( documentation )を使用してseabornをインポートできます。

import seaborn.apionly as sns

同じスクリプトで、seabornスタイルのあるプロットとないプロットを作成する場合は、 seaborn.reset_orig を使用してseabornスタイルをオフにすることができます。 =関数。

apionlyインポートを実行すると、基本的にインポート時にreset_origが自動的に設定されるようです。したがって、ユースケースで最も役立つのはあなた次第です。

matplotlibデフォルトとseabornを切り替える例を次に示します。

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

# a simple plot function we can reuse (taken from the seaborn tutorial)
def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

sinplot()

# this will have the matplotlib defaults
plt.savefig('seaborn-off.png')
plt.clf()

# now import seaborn
import seaborn as sns

sinplot()

# this will have the seaborn style
plt.savefig('seaborn-on.png')
plt.clf()

# reset rc params to defaults
sns.reset_orig()

sinplot()

# this should look the same as the first plot (seaborn-off.png)
plt.savefig('seaborn-offagain.png')

これにより、次の3つのプロットが生成されます。

seaborn-off.png:seaborn-off

seaborn-on.png:seaborn-on

seaborn-offagain.png:enter image description here

20
tmdavison

スタイルガイド で説明されているように、matplotlib.style.context機能を使用できます。

#%matplotlib inline #if used in jupyter notebook
import matplotlib.pyplot as plt
import seaborn as sns

# 1st plot 
with plt.style.context("seaborn-dark"):
    fig, ax = plt.subplots()
    ax.plot([1,2,3], label="First plot (seaborn-dark)")

# 2nd plot 
with plt.style.context("default"):
    fig, ax = plt.subplots()
    ax.plot([3,2,1], label="Second plot (matplotlib default)")

#  3rd plot 
with plt.style.context("seaborn-darkgrid"):
    fig, ax = plt.subplots()
    ax.plot([2,3,1], label="Third plot (seaborn-darkgrid)")

enter image description here

すべてのRCパラメータを元の設定に復元する(カスタムrcを尊重する)ことは、 seaborn.reset_orig() functionによって許可されます。

1
pcu

説明したように この他の質問で あなたはseabornをインポートすることができます:

import seaborn.apionly as sns

また、matplotlibスタイルは変更されません。

0
Ramon Crehuet