如何按坐标轴分界为柱状图柱子着色?以2008为分界点
柱状图按年份分界着色实现方案
Excel 实现方法
- 首先准备原始数据,包含「年份」「数值」两列
- 新增两列辅助列:
2008年及以前、2008年以后 - 给辅助列写公式:
2008年及以前列公式:=IF(年份单元格<=2008,对应数值单元格,NA())2008年以后列公式:=IF(年份单元格>2008,对应数值单元格,NA())
- 选中「年份」+两个辅助列的全部数据,插入簇状柱状图即可自动生成两种颜色的柱子,后续可以自定义调整填充色
Python Matplotlib 实现方法
- 核心逻辑是拆分数据为两个子集分别绘图
- 示例代码:
import pandas as pd import matplotlib.pyplot as plt # 示例数据 data = pd.DataFrame({ 'year': range(2000, 2020), 'value': [12,15,18,20,22,25,27,30,32,35,33,31,29,36,40,42,45,48,50,52] }) # 拆分数据 before_2008 = data[data['year'] <= 2008] after_2008 = data[data['year'] > 2008] # 绘图 plt.bar(before_2008['year'], before_2008['value'], color='#1f77b4', label='2008年及以前') plt.bar(after_2008['year'], after_2008['value'], color='#ff7f0e', label='2008年以后') plt.legend() plt.xticks(rotation=45) plt.show()
Tableau 实现方法
- 把「年份」字段拖到列功能区,「数值」字段拖到行功能区,选择柱状图类型
- 创建计算字段,命名为「年份分组」,公式为:
IF [年份] <= 2008 THEN "2008年及以前" ELSE "2008年以后" END - 把创建好的「年份分组」字段拖到「颜色」标记卡,即可自动按分组着色,可自定义调整颜色
内容的提问来源于stack exchange,提问作者rachel
相关产品推荐
相关产品推荐

