我試圖使用seaborn
來設置(可能很大)matplotlib
子圖的軸屬性。我希望能夠做的是通過一次調用plt.subplots
生成所有圖,然後在生成每個實際圖時設置子圖樣式。不幸的是,似乎只有在生成子圖時,sns樣式纔是重要的。如何在現有的matplotlib軸上設置seaborn樣式
以下代碼是最小(非)工作示例。理想情況下,兩個子圖有兩種不同的樣式,但它們不是。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
def makeplt(sub, dat):
sub.contour(dat)
def makepltwith(sub, dat, style):
with sns.axes_style(style) as sty:
sub.contour(dat)
dat = np.arange(100).reshape(10, 10)
with sns.axes_style('ticks'):
fig, subs = plt.subplots(ncols=2)
makeplt(subs[0], dat)
makepltwith(subs[1], dat, 'darkgrid')
plt.show()
有沒有辦法確保第二個圖有我想要的格式?我自己的最好想法是使用sty
對象來手動重新格式化sub
對象,但我無法想出一種運行格式的精闢方法。
seaborn.__version__=0.7
, matplotlib.__version__=1.5
如果有關係。