Python中的Seaborn散点图:调色板颜色太少
最近我在一个视频里看到一个很酷的散点图,展示了《辛普森一家》这部电视剧各季的剧集评分。我觉得这会是一个很有趣的Python项目。下面是我看到的那个图:
视频中的图我有一个数据表,里面记录了每一季、每一集的编号和评分。以下是我在脚本中生成的散点图:
### 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
}
)
这是输出结果:
我的图你可以看到,对于每10季,标记的形状开始重复。我不想为35种不同的评分创建35种颜色的调色板。我更喜欢像视频中那样,每几季的图标形状和颜色都不一样。但是这就是我遇到的问题,我不知道该怎么做!请帮帮我。
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()
这个图表看起来会是这样的:
