Python 中的 Seaborn 散点图:调色板中的颜色太少

问题描述 投票:0回答:1

最近,我在视频中看到了一个非常酷的散点图,其中显示了《辛普森一家》电视节目各季的收视率。我认为这将是一个非常酷的 python 项目。这是我看到的图表: Video Plot

我有一个数据框,其中包含季节、集数和每集的收视率。这是我脚本中的散点图:


### PLOT

plt.figure(figsize=(20, 8))

# scatterplot
sns.scatterplot(
    data=df, 
    x='Episode Number', 
    y='Rating', 
    hue='Season', 
    palette='tab10',
    s=50
)
    
# regression line
sns.regplot(
            data=df, 
            x='Episode Number', 
            y='Rating', 
            scatter=False,
            ci=None,
            line_kws={
                'color':'red', 
                'linestyle':'-', 
                'linewidth':3, 
                'alpha':0.3
            } 
                
)

这是输出 My plot

如您所见,每 10 个季节,标记就会开始重复。我更喜欢像视频中看到的图表那样创建具有 35 种不同颜色的调色板,每隔几个季节图更改标记的形状和颜色这就是问题,我不知道该怎么做!请帮助我

python seaborn
1个回答
0
投票

您需要做的就是添加样式参数,就像我在下面所做的那样:

import random as rd
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

#Make some sample data
episode=list(range(200))
season=[]
for k in range(20):
    for i in range(10):
        season.append(k)
rating=[]
for i in range(200):
    rating.append(rd.uniform(7.75, 8.25))

df=pd.DataFrame()
df['Episode Number']=episode
df['Rating']=rating
df['Season']=season

### PLOT

plt.figure(figsize=(20, 8))
plt.ylim(0,12)


# scatterplot
sns.scatterplot(
    data=df, 
    x='Episode Number', 
    y='Rating', 
    hue='Season',
    style='Season',
    palette='tab10',
    s=50
)
    
# regression line
sns.regplot(
            data=df, 
            x='Episode Number', 
            y='Rating', 
            scatter=False,
            ci=None,
            line_kws={
                'color':'red', 
                'linestyle':'-', 
                'linewidth':3, 
                'alpha':0.3
            } 
                
)

plt.legend(loc="lower left", ncol=2,title='Season')
plt.show()

图表将如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.