Seaborn提供了一些对科学数据表示非常有趣的图形。 因此,我开始使用这些Seaborn图形穿插其他定制的matplotlib图。 问题是,一旦我这样做了:
import seaborn as sb
这个导入似乎全局设置了seaborn的图形参数,然后导入下面的所有matplotlib图形都获得了seaborn参数(它们得到灰色背景,linewithd更改等等)。
在SO中有an answer解释如何使用matplotlib配置生成seaborn图,但我想要的是在将两个库一起使用时同时保持matplotlib配置参数不变,同时能够生成,当需要的,原始的海啸地块。
答案 0 :(得分:20)
如果您从不想使用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')
产生以下三个图:
答案 1 :(得分:8)
从seaborn version 0.8 (July 2017)开始,图表样式在导入时不再更改:
导入seaborn时,不再应用默认的[seaborn]样式。现在有必要明确调用
set()
或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()
。
答案 2 :(得分:1)
您可以使用style guide中描述的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)")
答案 3 :(得分:1)
seaborn.reset_orig()
函数允许将所有RC参数恢复为原始设置(尊重自定义rc)
答案 4 :(得分:0)
正如in this other question所述,您可以使用以下内容导入seaborn:
columns : [
{ title: " ", width: "83px", template: "<a class='k-button' name='DeleteButton'><span class='k-icon k-i-x'></span>Delete</a>" }
]
不会修改matplotlib样式。