Dotted Seaborn distplot

时间:2018-03-28 22:50:53

标签: python matplotlib jupyter-notebook seaborn

我有一个看起来像这样的seaborn displot enter image description here

我想把一些线条点缀起来。我怎样才能做到这一点? 我尝试以两种不同的方式使用linestyle并出现错误

#### approach 1
for x, m in x_list:
    sns.distplot(x, hist=False, label=m, linestyle='--')
#### approach 2
for x, m in x_list:
    sns.distplot(x, hist=False, label=m, kde_kws={'linestyle':'--'})

TypeError: distplot() got an unexpected keyword argument 'linestyle'

2 个答案:

答案 0 :(得分:2)

您可以使用ax.lines从seaborn distplot返回的轴中获取Line2D对象的列表。然后,使用set_linesytle遍历这些对象,以设置所需的线型。

例如:

import seaborn as sns

x = np.random.randn(100)
ax = sns.distplot(x, hist=False)

[line.set_linestyle("--") for line in ax.lines] 

plt.show()

enter image description here

答案 1 :(得分:1)

使用kde_kws={'linestyle':'--'}的第二种方法适用于seaborn 8.1。也许你想要更新。

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

x_list = [np.random.rayleigh(1+i/2., size=35) for i in range(4)]

for x in x_list:
    sns.distplot(x, hist=False, kde_kws={'linestyle':'--'})

plt.show()

enter image description here