如何绘制带有误差线的堆叠柱状图
如何绘制带有误差线的堆叠柱状图
工作或学习中,总要绘制一些看起来高大上的图形,如论文中经常出现带有误差线的堆叠柱状图,本文简单介绍下绘制方法。
代码实现
导入相关库
# -*- coding: UTF-8 -*-
# 导入相关库
import matplotlib.pyplot as plt
import numpy as np
定义图例颜色等信息
定义绘图所需要的详细信息:
# 创建图形和轴对象
fig, ax = plt.subplots(figsize=(10, 8))# 绘制柱状图,设置不同的底部空白和颜色
bars = []
for i, category in enumerate(categories):bar = ax.bar(i, warming_rates[i], bottom=bottom_values[i], color=colors[i], edgecolor='black', capsize=5)bars.append(bar)# 在纵轴3的位置添加一条横虚线
ax.axhline(y=0.2, color='k', linestyle='--')# 计算每个柱子的中间位置并绘制横线
for bar, bottom in zip(bars, bottom_values):middle_y = bar[0].get_height() / 2 + bottomx_start = bar[0].get_x()x_end = bar[0].get_x() + bar[0].get_width()ax.plot([x_start, x_end], [middle_y, middle_y], color='black', linewidth=1, linestyle='-')# 设置y轴标签
ax.set_ylabel('Warming rate (W m$^{-2}$)')
# 设置y轴的范围,确保底部空白可见
ax.set_ylim(bottom=0)
# 添加数据标签
for bar, bottom in zip(bars, bottom_values):height = bar[0].get_height()ax.annotate(f'{height:.2f}',xy=(bar[0].get_x() + bar[0].get_width() / 2, height + bottom),xytext=(0, 3), # 3 points vertical offsettextcoords="offset points",ha='center', va='bottom')# 设置x轴的刻度和标签
ax.set_xticks(np.arange(len(categories))) # 设置刻度的位置
ax.set_xticklabels(categories) # 设置刻度的标签
结果展示
如下,根据自定义的数据绘制的堆叠柱状图。由于篇幅有限,只展示了部分代码,完整代码可以回复关键词获取。
推荐阅读
- 【可视化】用pyecharts绘制我国人口分布
- 【爬虫】软科2024中国大学榜爬取
- 【可视化】绘制中国标准行政区划地图(2024版)
欢迎关注我的公众号“AI拾贝”,原创技术文章第一时间推送。后台发送chart3,自动回复源码和数据。