【论文复刻】堆叠柱状图+饼图

复刻了一下这篇论文里的fig2c:Impacts of COVID-19 and fiscal stimuli on global emissions and the Paris Agreement | Nature Climate Change

效果图:

主要步骤:

1. 数据准备:随机赋值

2. 图像绘制:绘制堆叠柱状图+饼状图

详细代码:着急的直接拖到最后有完整代码

步骤一:导入库包及图片存储路径并设置中文字体为宋体,西文为新罗马(没有的库包要先下好奥)

# 导入库及文件
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
# 设置西文字体为新罗马字体,中文宋体
config = {"font.family": 'serif',"font.size": 12,"mathtext.fontset": 'stix',"font.serif": ['SimSun'],}
rcParams.update(config)
rcParams['axes.unicode_minus']=False

步骤二:赋值数据

############################################################
figpath = r'H:/00.csdn/02fig/'
# 赋值数值
a = np.array([[40, 57, 84, 32, 45, 45],[41, 75, 65, 84, 52, 63], [46, 63, 45, 63, 24, 74], [16, 42, 35, 45, 52, 63], [14, 45, 46, 63, 45, 63]])
x = np.arange(1, 6, 1)month = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',]
year = ['2021', '2022', '2023', '2024', '2025']colors = plt.get_cmap('tab20')(range(6))

步骤三:绘制堆叠柱状图


###############################################################################
width = 0.6
fig1 = plt.figure(figsize=(15, 8))# 绘制堆叠柱状图
ax1 = fig1.add_axes([0.1, 0.25, 0.6, 0.4]) # 设置柱状图位置
sum0 = 0
for i in range(0, len(month), 1):ax1.bar(x, a[:, i], width, align='center', label=month[i], color=colors[i], bottom=sum0)sum0 += a[:, i]

步骤四:设置图中信息及图例

# 设置图中信息
# xlim,ylim:设置x轴y轴显示得最大最小值
# xticks,yticks: 设置坐标轴刻度,可控制隔几个标注,本图为两个一标
# xticklabels,yticklabels:设置坐标轴刻度名称,维度要和xticks,yticks一致奥
# xlabel,ylabel:坐标轴名称
# title:图名
ax1.set(xlim=(0.5, 6), xticks=range(1, 6, 1), xticklabels=year, xlabel = 'x轴',ylim=(0, 400), yticks=range(0, 401, 100), yticklabels=range(0, 401, 100), ylabel = 'y轴',title='图名')# 添加图例
ax1.legend(frameon=False)

步骤五:绘制饼图

###############################################################################
# 绘制饼图
ax2 = fig1.add_axes([0.054, 0.01, 0.2, 0.2])# 设置饼图位置
ax2.pie(a[0,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})# 绘制饼图
ax3 = fig1.add_axes([0.163, 0.01, 0.2, 0.2])
ax3.pie(a[1,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})
ax4 = fig1.add_axes([0.272, 0.01, 0.2, 0.2])
ax4.pie(a[2,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})
ax5 = fig1.add_axes([0.381, 0.01, 0.2, 0.2])
ax5.pie(a[3,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})
ax6 = fig1.add_axes([0.491, 0.01, 0.2, 0.2])
ax6.pie(a[4,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})

 步骤六:保存图像

#保存图像
plt.savefig(figpath+'304 COVID-19 Fig2', dpi=600, bbox_inches = 'tight')
plt.show()

完整代码在这里:

# 导入库及文件
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
# 设置西文字体为新罗马字体,中文宋体
config = {"font.family": 'serif',"font.size": 12,"mathtext.fontset": 'stix',"font.serif": ['SimSun'],}
rcParams.update(config)
rcParams['axes.unicode_minus']=False
############################################################
figpath = r'H:/00.csdn/02fig/'
# 赋值数值
a = np.array([[40, 57, 84, 32, 45, 45],[41, 75, 65, 84, 52, 63], [46, 63, 45, 63, 24, 74], [16, 42, 35, 45, 52, 63], [14, 45, 46, 63, 45, 63]])
x = np.arange(1, 6, 1)month = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',]
year = ['2021', '2022', '2023', '2024', '2025']colors = plt.get_cmap('tab20')(range(6))###############################################################################
width = 0.6
fig1 = plt.figure(figsize=(15, 8))# 绘制堆叠柱状图
ax1 = fig1.add_axes([0.1, 0.25, 0.6, 0.4]) # 设置柱状图位置
sum0 = 0
for i in range(0, len(month), 1):ax1.bar(x, a[:, i], width, align='center', label=month[i], color=colors[i], bottom=sum0)sum0 += a[:, i]# 设置图中信息
# xlim,ylim:设置x轴y轴显示得最大最小值
# xticks,yticks: 设置坐标轴刻度,可控制隔几个标注,本图为两个一标
# xticklabels,yticklabels:设置坐标轴刻度名称,维度要和xticks,yticks一致奥
# xlabel,ylabel:坐标轴名称
# title:图名
ax1.set(xlim=(0.5, 6), xticks=range(1, 6, 1), xticklabels=year, xlabel = 'x轴',ylim=(0, 400), yticks=range(0, 401, 100), yticklabels=range(0, 401, 100), ylabel = 'y轴',title='图名')# 添加图例
ax1.legend(frameon=False)
###############################################################################
# 绘制饼图
ax2 = fig1.add_axes([0.054, 0.01, 0.2, 0.2])# 设置饼图位置
ax2.pie(a[0,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})# 绘制饼图
ax3 = fig1.add_axes([0.163, 0.01, 0.2, 0.2])
ax3.pie(a[1,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})
ax4 = fig1.add_axes([0.272, 0.01, 0.2, 0.2])
ax4.pie(a[2,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})
ax5 = fig1.add_axes([0.381, 0.01, 0.2, 0.2])
ax5.pie(a[3,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})
ax6 = fig1.add_axes([0.491, 0.01, 0.2, 0.2])
ax6.pie(a[4,:], colors=colors, autopct="%1.1f%%", textprops={'size':10, 'color':'k'})
###############################################################################
#保存图像
plt.savefig(figpath+'304 COVID-19 Fig2', dpi=600, bbox_inches = 'tight')
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698266.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无列名注入

在进行sql注入时,一般都是使用 information_schema 库来获取表名与列名,因此有一种场景是传入参数时会将 information_schema 过滤 在这种情况下,由于 information_schema 无法使用,我们无法获取表名与列名。 表名获取方式 Inn…

RabbitMQ--死信队列

目录 一、死信队列介绍 1.死信 2.死信的来源 2.1 TTL 2.2 死信的来源 3.死信队列 4.死信队列的用途 二、死信队列的实现 1.导入依赖 pom.xml 2.application.properties 3.配置类 4.生产者 5.业务消费者(正常消费者) 6.死信队列消费者 一、…

Linux服务升级:OpenResty 升级1.25.3.1版本

目录 一、实验 1.环境 2.Windows 安装 Termius 3.Linux 部署 OpenResty 4.Linux 使用 OpenResty 实现内容展示(content_by_lua) 5.Linux 使用 OpenResty 实现重定向 (rewrite_by_lua) 6.Linux 使用 OpenResty 实现请求体&…

设置 kafka offset 消费者位移

文章目录 1.重设kafka消费者位移2.示例2.1 通过 offset 位置2.2 通过时间2.3 设置到最早 1.重设kafka消费者位移 维度策略含义位移Earliest把位移调整到当前最早位移处位移Latest把位移调整到当前最新位移处位移Current把位移调整到当前最新提交位移处位移Specified-Offset把位…

AI地名故事:长洲村

长洲村,位于广州市黄埔区长洲街道,坐落在广州东部的长洲岛、洪圣沙、白兔沙、大吉沙。这个地方自古以来就是扼守广州海上大门的咽喉要塞,地理位置十分重要。 关于长洲村的由来,要追溯到南宋时期。南宋景定三年(1262年…

【小积累】@Qualifier注解

今天在看rabbitMQ的时候需要绑定交换机和队列,交换机和队列都已经注入到spring容器中,写了一个配置类,使用了bean注解注入的。所以这时候绑定的时候需要使用容器中的交换机和队列,必须要使用Qualifier去确定是容器中的哪个bean对象…

十一、 进行个人信息保护认证的流程是怎样的?

2022 年 11 月 18 日,国家市场监督管理总局和国家网信办发布的《认证公告》以及附件《认证规则》,对开展个人信息保护认证的流程进行了细节说明,包括认证委托、技术验证、现场审核、认证结果评价和批准等环节。《认证公告》指出“从事个人信息…

Mamba:4 魔幻矩阵A

若在阅读过程中有些知识点存在盲区,可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果构建生成级别的AI架构则可以关注AI架构设计。技术宅麻烦死磕LLM背后的基础模型。 ​Mamba自从出道就一直被拿来和Transformer对比…

基于.NET的跨平台应用程序框架介绍

基于.NET的跨平台应用程序框架介绍 随着.NET 8的发布,我也将我的书.NET MAUI Cross-Platform Application Development更新到了第二版,已经在3月25日开始正式发行。第一版是基于.NET 6编写的,第二版更新到了 .NET 8。这是一本介绍.NET MAUI的…

AR项目开发的技术难点

AR项目开发涉及多种技术,例如计算机视觉、图形学、传感器融合和人机交互。因此,AR项目开发存在以下难点,AR项目开发是一项具有挑战性的工作。但是,随着技术的进步和标准的完善,AR项目开发将会变得更加容易。北京木奇移…

计算机毕业设计 | springboot+vue电影院会员管理系统 影院后台管理(附源码)

1,项目背景 随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的电影院会员管理系统;电影院会员管理系统的管理工作系统化、规范化,也会提高影院形象…

浅谈SiC MOSFET之双脉冲原理

1.双脉冲实验实验的必要性 在平常的使用中,我们基本通过芯片手册来了解功率器件的各种性能参数,但是手册中的参数的测量环境都是在理想状态下,与实际使用或多或少都会有差别。通过双脉冲实验可以获取器件在真实工况下的参数,对于产…