如何使折线图线条颜色与Division(颜色命名)名称对应匹配?
问题:让折线图线条颜色与Division名称一致
我一直在尝试绘制7个Division(blue、green、grey、orange、purple、red、yellow)每月的'Sales'均值折线图。以下是代码片段:
subset_sales = (df_2.pivot_table(index=['Response Month (YYYY-MM)'], columns='Division', values='Sales') .reset_index() .set_index('Response Month (YYYY-MM)') ) subset_sales.plot(kind='line', rot=90) plt.tight_layout() plt.show()
当前生成的折线图线条为默认配色,无法与Division名称对应。请问如何确保每个Division的折线颜色与其名称一致,即blue部门对应蓝色线条,yellow部门对应黄色线条?
解决方案
只需创建一个颜色映射字典,将每个Division名称映射到Matplotlib支持的对应颜色名称,再在绘图时传入该字典即可:
import matplotlib.pyplot as plt # 定义颜色映射:键为Division名称,值为对应颜色 color_map = { 'blue': 'blue', 'green': 'green', 'grey': 'grey', 'orange': 'orange', 'purple': 'purple', 'red': 'red', 'yellow': 'yellow' } subset_sales = (df_2.pivot_table(index=['Response Month (YYYY-MM)'], columns='Division', values='Sales') .reset_index() .set_index('Response Month (YYYY-MM)') ) # 绘图时指定color参数为颜色映射字典 subset_sales.plot(kind='line', rot=90, color=color_map) plt.tight_layout() plt.show()
说明:
- Pandas的
plot()方法支持通过color参数接收字典,会自动根据列名(即Division名称)匹配对应的颜色 - 确保颜色映射字典包含所有需要绘制的Division,未包含的Division会使用默认配色
内容的提问来源于stack exchange,提问作者circle
相关产品推荐
相关产品推荐

