如何绘制如图所示的图表?求助该样式图表的绘制方法
绘制目标图表的实现方法
一、Excel 操作步骤
- 先把数据整理成规范格式:一行分类标签,对应两列(或多列)需要可视化的数据
- 选中所有数据区域,点击顶部「插入」选项卡,选择「组合图」
- 在弹出的组合图设置面板中,给不同数据系列指定对应图表类型(比如一组用簇状柱形,另一组用折线),需要双Y轴的话勾选对应系列的「次坐标轴」
- 最后调整坐标轴刻度、图例位置、颜色样式,匹配目标图表的外观
二、Python(Matplotlib)代码示例
如果用代码实现,以下是双Y轴组合图的示例(适配常见的柱形+折线组合场景):
import matplotlib.pyplot as plt # 替换成你的实际数据 categories = ["A", "B", "C", "D"] bar_values = [12, 25, 18, 22] line_values = [45, 38, 42, 35] # 创建画布和主坐标轴 fig, ax1 = plt.subplots(figsize=(8, 5)) # 绘制柱形图 ax1.bar(categories, bar_values, color='#66BB6A', label='柱形数据') ax1.set_xlabel('分类') ax1.set_ylabel('柱形数值范围') ax1.grid(axis='y', linestyle='--', alpha=0.7) # 创建次坐标轴绘制折线图 ax2 = ax1.twinx() ax2.plot(categories, line_values, color='#2196F3', marker='s', linewidth=2, label='折线数据') ax2.set_ylabel('折线数值范围') # 合并图例 lines1, labels1 = ax1.get_legend_handles_labels() lines2, labels2 = ax2.get_legend_handles_labels() ax2.legend(lines1 + lines2, labels1 + labels2, loc='upper right') plt.title('组合图表示例') plt.tight_layout() plt.show()
如果你的目标图表是其他类型(比如堆叠柱形、分组柱形),只需要调整对应的绘制逻辑:
- 堆叠柱形:给
ax1.bar添加bottom参数,指定下层柱子的数值 - 分组柱形:调整柱子宽度,给不同组的柱子设置偏移量
内容的提问来源于stack exchange,提问作者DaoDao
相关产品推荐
相关产品推荐

