没有Matplotlib直方图或Seaborn distlot的bin的轮廓

在使用seaborn和Jupyter笔记本做一些练习题的时候,我意识到distplot()图在文档中的所有示例图上都没有黑色的轮廓。 我试图用Pycharm创build图表,并注意到同样的事情。 认为这是一个seaborn问题,我尝试了使用matplotlib一些hist()图表,只得到相同的结果。

import matplotlib.pyplot as plt import seaborn as sns titanic = sns.load_dataset('titanic') plt.hist(titanic['fare'], bins=30) 

产生了以下图表:

在这里输入图像描述

最后,我偶然发现了plt.hist()函数的'edgecolor'参数,并将其设置为黑色。 不幸的是,我还没有find类似的参数在seaborn distplot()函数上使用,所以我仍然无法得到看起来应该的图表。

我研究了改变matplotlib中的rcParams,但是我没有经验,我跑的下面的脚本似乎什么都不做:

 import matplotlib as mpl mpl.rcParams['lines.linewidth'] = 1 mpl.rcParams['lines.color'] = 'black' mpl.rcParams['patch.linewidth'] = 1 mpl.rcParams['patch.edgecolor'] = 'black' mpl.rcParams['axes.linewidth'] = 1 mpl.rcParams['axes.edgecolor'] = 'black' 

我只是猜测我应该改变的价值,但再次运行我的图表显示没有变化。

然后我试图回到使用mpl.rcdefaults()的默认设置,但是再一次没有改变。

我用conda重新安装了matplotlib,但是图表看起来是一样的。 关于如何更改这些图表的默认边缘颜色,我正在用尽想法。 我正在使用Conda构build运行最新版本的Python,matplotlib和seaborn。

作为matplotlib 2.0更新的一部分,条形图的边缘默认是closures的 。 但是,您可以使用rcParam

 plt.rcParams["patch.force_edgecolor"] = True 

打开全球的边缘。

可能最简单的select是使用hist_kws参数创buildseaborn图时专门设置hist_kws

 ax = sns.distplot(x, hist_kws=dict(edgecolor="k", linewidth=2)) 

对于matplotlib图,可以直接使用edgecolorec参数。

 plt.bar(x,y, edgecolor="k") plt.hist(x, edgecolor="k") 

同样,对于pandas的情节,

 df.plot(kind='hist',edgecolor="k") 

一个完整的seaborn例子:

 import numpy as np import matplotlib.pyplot as plt import seaborn as sns x = np.random.randn(100) ax = sns.distplot(x, hist_kws=dict(edgecolor="k", linewidth=2)) plt.show() 

在这里输入图像描述