Python Seaborn多线图,只有一条线是彩色的
我正在尝试使用sns绘制一个多线图,但只将美国线保持为红色,而其他国家则保持为灰色 这就是我到目前为止所做的:Python Seaborn多线图,只有一条线是彩色的,python,matplotlib,seaborn,linechart,Python,Matplotlib,Seaborn,Linechart,我正在尝试使用sns绘制一个多线图,但只将美国线保持为红色,而其他国家则保持为灰色 这就是我到目前为止所做的: df = px.data.gapminder() sns.lineplot(x = 'year', y = 'pop', data = df, hue = 'country', color = 'grey', dashes = False, legend = False) 但这不会将线条更改为灰色。我在想,在这之后,我可以自己添加红色的US线条。…您可以使用调色板参数将线条的自定义颜
df = px.data.gapminder()
sns.lineplot(x = 'year', y = 'pop', data = df, hue = 'country', color = 'grey', dashes = False, legend = False)
但这不会将线条更改为灰色。我在想,在这之后,我可以自己添加红色的US线条。…您可以使用
调色板
参数将线条的自定义颜色传递给sns.lineplot
,例如:
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
导入seaborn作为sns
df=pd.DataFrame({'year':[2018、2019、2020、2018、2019、2020、2018、2019、2020、],
"流行音乐:[325,328,332,125,127,132,36,37,38],,
“国家”:[“美国”、“美国”、“美国”、“墨西哥”、“墨西哥”,
“加拿大”、“加拿大”、“加拿大”]})
颜色=[“红色”、“灰色”、“灰色”]
sns.lineplot(x='year',y='pop',data=df,hue='country',
调色板=颜色,图例=假)
plt.ylim(0350)
plt.xticks([2018、2019、2020]);
尽管有一个传说仍然有用,所以你也可以考虑修改alpha值(下面元组中的最后值)来强调USA.
red=(1,0,0,1)
绿色=(0,0.5,0,0.2)
蓝色=(0,0,1,0.2)
颜色=[红、绿、蓝]
sns.lineplot(x='year',y='pop',data=df,hue='country',
调色板=颜色)
plt.ylim(0350)
plt.xticks([2018、2019、2020]);
您可以使用
调色板
参数将线的自定义颜色传递到sns.lineplot
,例如:
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
导入seaborn作为sns
df=pd.DataFrame({'year':[2018、2019、2020、2018、2019、2020、2018、2019、2020、],
"流行音乐:[325,328,332,125,127,132,36,37,38],,
“国家”:[“美国”、“美国”、“美国”、“墨西哥”、“墨西哥”,
“加拿大”、“加拿大”、“加拿大”]})
颜色=[“红色”、“灰色”、“灰色”]
sns.lineplot(x='year',y='pop',data=df,hue='country',
调色板=颜色,图例=假)
plt.ylim(0350)
plt.xticks([2018、2019、2020]);
尽管有一个传说仍然有用,所以你也可以考虑修改alpha值(下面元组中的最后值)来强调USA.
red=(1,0,0,1)
绿色=(0,0.5,0,0.2)
蓝色=(0,0,1,0.2)
颜色=[红、绿、蓝]
sns.lineplot(x='year',y='pop',data=df,hue='country',
调色板=颜色)
plt.ylim(0350)
plt.xticks([2018、2019、2020]);
您可以使用pandas groupby来绘制:
fig,ax=plt.subplots()
for c,d in df.groupby('country'):
color = 'red' if c=='US' else 'grey'
d.plot(x='year',y='pop', ax=ax, color=color)
ax.legend().remove()
输出:
也可以将特定调色板定义为字典:
palette = {c:'red' if c=='US' else 'grey' for c in df.country.unique()}
sns.lineplot(x='year', y='pop', data=df, hue='country',
palette=palette, legend=False)
输出:
您可以使用pandas groupby来绘制:
fig,ax=plt.subplots()
for c,d in df.groupby('country'):
color = 'red' if c=='US' else 'grey'
d.plot(x='year',y='pop', ax=ax, color=color)
ax.legend().remove()
输出:
也可以将特定调色板定义为字典:
palette = {c:'red' if c=='US' else 'grey' for c in df.country.unique()}
sns.lineplot(x='year', y='pop', data=df, hue='country',
palette=palette, legend=False)
输出:
由于您似乎对堆栈溢出还不熟悉,所以您应该阅读因为您对堆栈溢出还不熟悉,所以您应该阅读