如何让Seaborn柱状图的柱子颜色与X轴颜色标签保持匹配

解决方案
你只需要调整seaborn.barplot的palette参数配置,即可实现柱子颜色和X轴颜色标签完全匹配,不需要额外复杂操作。
当X轴颜色标签为Matplotlib支持的标准颜色名时
直接将颜色列的取值作为调色板传入,配合hue参数绑定映射关系,避免顺序错乱:
plt.figure(figsize=(12,8)) slippers_plot = sns.barplot( data=slipper_colour, x='colour', y='total_units', hue='colour', palette=slipper_colour['colour'].unique(), legend=False ) slippers_plot.set_title("Top Slipper Colors", fontsize=20, pad=30, fontdict={"weight": "bold"}) # 注:原代码X/Y轴标签写反,已修正 slippers_plot.set_xlabel("颜色", fontsize=16) slippers_plot.set_ylabel("总销量", fontsize=18) plt.xticks(fontsize=14) plt.yticks(fontsize=14) plt.show()
当存在自定义颜色名称时
提前建立颜色名到实际色值的映射字典,再传入palette参数即可:
# 按你实际的颜色分类补全映射关系,色值支持十六进制、RGB元组、标准颜色名三种格式 color_mapping = { "粉色": "pink", "雾霾蓝": "#B0C4DE", "奶白": "#FFFFF0", "黑色": "black" } plt.figure(figsize=(12,8)) slippers_plot = sns.barplot( data=slipper_colour, x='colour', y='total_units', hue='colour', palette=color_mapping, legend=False ) # 其余样式配置和上面代码一致
小提示:如果你的Seaborn版本低于0.12,可以省略hue参数,直接传入调色板列表即可生效
内容的提问来源于stack exchange,提问作者Ed Jefferies
相关产品推荐
相关产品推荐

