我试图使用sns绘制多线图,但仅将美国线保持为红色,而其他国家/地区为灰色
这是我目前所掌握的情况:
df = px.data.gapminder()
sns.lineplot(x = 'year', y = 'pop', data = df, hue = 'country', color = 'grey', dashes = False, legend = False)
但这并不能把线改成灰色。我在想,在这之后,我可以把美国线本身加成红色。
我试图使用sns绘制多线图,但仅将美国线保持为红色,而其他国家/地区为灰色
这是我目前所掌握的情况:
df = px.data.gapminder()
sns.lineplot(x = 'year', y = 'pop', data = df, hue = 'country', color = 'grey', dashes = False, legend = False)
但这并不能把线改成灰色。我在想,在这之后,我可以把美国线本身加成红色。
3条答案
按热度按时间lp0sw83n1#
您可以使用panda groupby来绘制:
输出:
或者,您可以将特定调色板定义为字典:
输出量:
cs7cruho2#
您可以使用
palette
参数将线的自定义颜色传递给sns.lineplot
,例如:尽管有一个图例仍然是有用的,所以你可能还想考虑修改alpha值(下面元组中的最后一个值)来突出显示USA。
fv2wmkja3#
易于扩展的解决方案:
1.根据要突出显示的行将 Dataframe 拆分为两个
突出显示行=['美国']色调列= '国家'
a.将数据置灰
为灰色线条生成自定义调色板-灰色十六进制代码#808080
B.获取要突出显示的数据
1.在同一图形上绘制两个数据框
a.绘制灰色数据:
B.绘制突出显示的数据