在Python的pandas/matplotlib/seaborn中使用自定义配色方案

4

我希望在各种图表中使用自定义的颜色方案,但无法使其正常工作(使用 seaborn 和/或 matplob & pandas 绘制这些图表)。

flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
ax = sns.violinplot(x="Contents", y="Flavour", data=rd, color="lol", inner="box")

我收到错误代码:

ValueError: to_rgb: Invalid rgb arg "flatui"
could not convert string to float: 'flatui'

即使
ax = sns.violinplot(x="Contents", y="Flavour", data=rd, color=["9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"], inner="box")

无法工作

请帮助我!


2个回答

7

让我们试试这个。

flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
sns.set_palette(flatui)
sns.palplot(sns.color_palette())

ax = sns.violinplot(x="Contents", y="Flavour", data=rd, color="lol", inner="box")

这里还有一些其他数据,以下是结果。

在此输入图片描述


我该如何在仅使用一个matplotlib图中完成以下操作:grouped = rd.groupby(["Packet number", "Flavour"])["Contents"].sum().unstack().fillna(0) grouped.plot(kind="bar", stacked=True, colormap=["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"])因为您的建议无法实现此操作。 - pow
grouped.plot(kind="bar", stacked=True, color=["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]) 这样可以吗? - Scott Boston

4
你需要通过Seaborn的调色板来设置颜色,或者可以直接通过“palette”参数将颜色传递给Violinplot,而不是使用“color”。详见Seaborn文档

是的,我也尝试过使用调色板,只是将颜色作为解决问题的一种方式,但最初都没有起作用。 - pow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接