44

seaborn をインポートした Pandas で 2 つのデータ シリーズをプロットしています。理想的には、左右の y 軸の両方で水平グリッド線を共有したいのですが、これは難しいという印象を受けました。

妥協案として、グリッド線をまとめて削除したいと思います。ただし、次のコードは、セカンダリ y 軸の水平グリッド線を生成します。

import pandas as pd
import numpy as np
import seaborn as sns


data = pd.DataFrame(np.cumsum(np.random.normal(size=(100,2)),axis=0),columns=['A','B'])
data.plot(secondary_y=['B'],grid=False)

消したいグリッドライン

4

5 に答える 5

55

プロット後に Axes オブジェクトを取り出し、.grid(False)両方の軸で実行できます。

# Gets the axes object out after plotting
ax = data.plot(...)

# Turns off grid on the left Axis.
ax.grid(False)

# Turns off grid on the secondary (right) Axis.
ax.right_ax.grid(False)
于 2016-02-17T10:19:56.887 に答える
45
sns.set_style("whitegrid", {'axes.grid' : False})

スタイルは、選択した有効なものであれば何でもよいことに注意してください。

これに関する素晴らしい記事については、このサイトを参照してください。

于 2015-11-08T03:04:47.447 に答える
10

問題は、デフォルトの pandas フォーマット (または選択したフォーマット) を使用することです。舞台裏でどのように機能するかはわかりませんが、これらのパラメーターは、プロット関数のように渡す書式設定よりも優先されます。それらのリストは、ここの mpl_style ディクショナリで確認できます。

これを回避するには、次のようにします。

import pandas as pd
pd.options.display.mpl_style = 'default'
new_style = {'grid': False}
matplotlib.rc('axes', **new_style)
data = pd.DataFrame(np.cumsum(np.random.normal(size=(100,2)),axis=0),columns=['A','B'])
data.plot(secondary_y=['B'])

ここに画像の説明を入力

于 2014-11-11T19:42:20.860 に答える
5

これは、すべてのキーワード引数が両方の Axes に渡されるわけではなく、Pandas のバグのある動作のように感じます。ただし、seaborn でデフォルトでグリッドをオフにしたい場合は、 を呼び出すだけですsns.set_style("dark")sns.axes_style1 つの Figure のデフォルトのみを変更する場合は、withステートメントで使用することもできます。

于 2014-11-11T21:40:14.263 に答える
4

次のように設定できます。

sns.set_style("ティック")

正常に戻ります。

于 2021-05-07T22:22:41.630 に答える