首页 > 解决方案 > 如何在 seaborn.lineplot 中将所有线条更改为黑色?

问题描述

如何在seaborn中将所有线条更改为黑色?我输入了“color = 'black'但它并没有改变默认值。我还希望whitegrid保留在图表中但它消失了。

data['date'] = pd.to_datetime(data['date']).dt.date
sns.lineplot(data=data, x='date', y='count', hue='new_sentiment', style = 'new_sentiment', 
             color ='black')
sns.set_style("whitegrid", {
  "ytick.major.size": 0.1,
    "ytick.minor.size": 0.05,
   'grid.linestyle': 'solid',
    
 })
plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")
plt.setp(plt.gca().xaxis.get_majorticklabels(),rotation=90)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%b-%Y'))
plt.xlim([datetime.date(2020, 1, 13), datetime.date(2021, 6, 15)])
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=24))
plt.savefig('04_clean_resentiment_count_2020_2021.tiff', dpi=300, format='tiff', bbox_inches='tight')

在此处输入图像描述

标签: pythonseabornlinegraph

解决方案


以官方参考中的折线图为例,我将线的颜色设置为黑色。然而,当它只是一种颜色时,很难识别数据。使用单一颜色阴影进行可视化可能会更好。

在此处输入图像描述

将 seaborn 导入为 sns

flights = sns.load_dataset("flights")
sns.set_style("whitegrid", {
  "ytick.major.size": 0.1,
    "ytick.minor.size": 0.05,
   'grid.linestyle': 'solid',
 })

g = sns.lineplot(data=flights, x="year", y="passengers", hue='month')
lines = g.get_lines()
[l.set_color('black') for l in lines]
g.legend()

在此处输入图像描述

sns.lineplot(data=flights, x="year", y="passengers", hue='month', palette=('Greys'))

在此处输入图像描述


推荐阅读