在Python中';s Seaborn,有什么方法可以做与“鄙视”相反的事吗?
在Python中';s Seaborn,有什么方法可以做与“鄙视”相反的事吗?,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,seaborn是一个漂亮的Python软件包,在大多数情况下,它是matplotlib之上的一个附加层。但是,它会改变,例如,plot对象上的matplotlib方法将改变为指向seaborn函数 seaborn的skeene()从绘图中删除任何脊椎(绘图的外边缘)。但我不能做相反的事 如果我从一开始就完全使用matplotlib,我似乎无法以标准方式重新创建脊椎。有办法吗?我该怎么做 下面是一个例子。例如,我可以在绘图的底部和左侧添加一个脊椎吗 from sklearn import da
seaborn
是一个漂亮的Python软件包,在大多数情况下,它是matplotlib
之上的一个附加层。但是,它会改变,例如,plot对象上的matplotlib
方法将改变为指向seaborn
函数
seaborn
的skeene()
从绘图中删除任何脊椎(绘图的外边缘)。但我不能做相反的事
如果我从一开始就完全使用matplotlib
,我似乎无法以标准方式重新创建脊椎。有办法吗?我该怎么做
下面是一个例子。例如,我可以在绘图的底部和左侧添加一个脊椎吗
from sklearn import datasets
import pandas as pd
tmp = datasets.load_iris()
iris = pd.DataFrame(tmp.data, columns=tmp.feature_names)
iris['species'] = tmp.target_names[tmp.target]
iris.species = iris.species.astype('category')
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('darkgrid')
sns.boxplot(x='species', y='sepal length (cm)', data=iris_new)
plt.show()
谢谢你的评论!我知道你写的一些东西,但不知道需要设置
'axes.linewidth'
和'axes.edgecolor'
我在这里写一个答案,因为它是一些评论的汇编
也就是说,以下代码生成以下绘图:
sns.set_style('darkgrid', {'axes.linewidth': 2, 'axes.edgecolor':'black'})
sns.boxplot(x='species', y='sepal length (cm)', data=iris_new)
plt.show()
默认情况下,
darkgrid
样式没有脊椎。您需要选择另一种样式——matplotlib现在有许多自己的样式。您也可以通过执行导入seaborn.api导入seaborn,而不对样式产生任何影响,因为snsPaul是正确的,尽管完整的答案有点微妙spine实际上删除了脊椎对象,而darkgrid
样式将轴的线宽设置为0。您可以在默认的darkgrid
上指定其他rc参数,或者选择其他样式。@mwaskom感谢您的澄清。很高兴知道。实际上我想我的评论并不完全正确<代码>轻视
不会删除脊椎对象,而是切换其可见性
参数。不过,这与默认样式的作用机制仍然不同。@PaulH我知道默认情况下,darkgrid
没有脊椎。但它也有一些我喜欢的其他设置。我不想把孩子和洗澡水一起扔掉。顺便说一句,如果你用深灰色(即,“.15”
)而不是“黑色”
,情况会好一点。这是真实的,特别是因为这是其他seaborn情节元素的颜色。谢谢,@mwaskom!我同意。然而,在我的例子中,我希望使代码尽可能简单,而不是在我的主要问题之外引入概念。