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

news2025/1/21 5:56:16

复刻了一下这篇论文里的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.coloradmin.cn/o/1673932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

邓闲小——生存、生活、生命|真北写作

人生有三个层次∶生存、生活、生命。 生存就是做必须做的事。生存的模式是邓,是交易,是买卖。别人需要的东西,你生产出来,卖给他。哪怕这个东西没啥用,也可以卖,情绪也可以卖。你需要的东西,你花…

e行64位V11.17.4 安卓全局虚拟定位APP

e行最新版11.17.4 支持全局虚拟位置 小米手机 百度地图 高德地图 实测成功 其他app自测 不一定支持所有app 下载:https://www.123pan.com/s/HAf9-tsyCh.html

人员密集场所电气火灾预警系统 对设备漏电、短路、发热进行监测预警

谢继东15821713522 安科瑞Acrelcloud-6000安全用电管理平台是针对我国当前电气火灾事故频发而创新的一套电气火灾预警和预防管理系统.系统通过物联网技术对电气引发火灾的主要因素(导线温度、电流、电压和漏电流)进行不间断的数据跟踪与统计分析&#xf…

【 第一性原理计算方法及应用】

第一性原理计算方法及应用述

河南地区评政工师 需要发网络文章和刊登论文要求是什么

河南省政工师评审文件是《河南省企业思想政治工作人员专业职务评定办法》豫企政职(2010)1号。该文件将河南省政工师职称划分为助理政工师、政工师、高级政工师、教授级高级政工师四类。其中,每一个级别的政工师都需要发表相关文件&#xff0c…

基于uniapp+vue3+ts小程序项目实战之项目初始化

🚀 作者 :“二当家-小D” 🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k…

混淆矩阵实战

2.实战 1.加载数据 #加载数据 import pandas as pd import numpy as np data pd.read_csv(data_class_raw.csv) data.head()2.data.loc得到样本属性,并进行样本数据可视化 #可视化数据 %matplotlib inline from matplotlib import pyplot as plt#define X and y…

记一次ms17-010(永恒之蓝)漏洞复现

1.漏洞介绍: 永恒之蓝(ms17-010)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病…

解锁!智能代码助手 Baidu Comate 硬核能力

近日,在全球软件开发大会上暨智能软件开发生态展上,来自 Baidu Comate 的资深研发工程师分享了精彩的专题演讲,小编整理了演讲精华,和大家一起玩转“大模型软件研发”。 今天带来——吴玮琦《智能代码助手 Baidu Comate 的核心能…

【MySQL数据库】初步认识数据库,实现基本操作

在信息爆炸的今天,数据无处不在,它们构成了互联网世界的基石。但数据本身若未经有效组织和管理,就如同散落在沙滩上的珍珠,难以发挥其真正的价值。这时,“数据库”这一概念便如同一根线,将这些珍珠串联起来…

黑马新出的SpringBoot3项目后端总结

基础篇-00_SpringBoot3_Vue3导学课程_哔哩哔哩_bilibili 这个是视频链接 这个新课程里面用了一些企业里会用的注解例如Validated这种,业务流程清晰明了简单上手,算是可以了解最基本的Springboot开发流程,方便上手和快速入门 主要是下面这几…

差异基因散点图绘制教程

差异基因散点图绘制教程 本期教程 小杜的生信笔记,自2021年11月开始做的知识分享,主要内容是R语言绘图教程、转录组上游分析、转录组下游分析等内容。凡事在社群同学,可免费获得自2021年11月份至今全部教程,教程配备事例数据和相…

Python---NumPy万字总结【此篇文章内容难度较大,线性代数模块】(3)

NumPy的应用(3) 向量 向量(vector)也叫矢量,是一个同时具有大小和方向,且满足平行四边形法则的几何对象。与向量相对的概念叫标量或数量,标量只有大小,绝大多数情况下没有方向。我们…

【JAVA】数组的定义与使用

前一篇我们讲述了方法的使用和递归,这一讲 我们来叙述一下数组相关知识点。最近更新较快,大家紧跟步伐哦~~ 1. 数组的基本概念 1.1 为什么要使用数组 假设现在要存5个学生的javaSE考试成绩,并对其进行输出,按照之前掌握的知识点&…

Gooxi发布最新AI服务器:加速生成式AI落地 更懂AI

近日,Gooxi发布最新训推一体AI服务器,以大容量内存和灵活的高速互连选项满足各种AI应用场景,最大可能支持扩展插槽,从而大幅提升智能算力性能,以最优的性能和成本为企业的模型训练推理落地应用提供更好的通用算力。 AI…

AICloud 分论坛 07-AI原生数据库与RAG【文档管理】

https://github.com/infiniflow/infinityhttps://infiniflow.org/视频观看:https://www.bilibili.com/video/BV16m411y7xW/?spm_id_from333.999.0.0&vd_sourceae7b192be069682aabc96350ba419fc5 简介 为LLM应用程序构建的AI原生数据库,提供令人难…

单元测试之TestNG知识点总结及代码示例

TestNG 是一个测试框架,用于自动化测试 Java 和 Scala 应用程序,它是 JUnit 和 NUnit 的一个强大替代品。TestNG 支持数据驱动测试、参数化测试、测试套件、依赖管理、多线程测试等特性。TestNG官网:TestNG Documentation 目录 1.TestNG 基…

think PHP导入导出excel

本地环境 think PHP5,PhpOffice/PhpSpreadsheet,composer PHP版本7.4,这个插件的最低版本要求7.2 配置PhpSpreadsheet 官网:https://phpspreadsheet.readthedocs.io/en/stable/ composer require phpoffice/phpspreadsheet数据库…

华强北宋仕强论道之项目管理

华强北宋仕强论道之项目管理,金航标和萨科微总经理宋仕强先生说,良好的项目管理是企业成功的关键之一,项目是公司最小的管理单元,而项目管理则是确保项目顺利完成的关键工作。在一个项目中,需要明确目标,合…

下载element-ui报错

此错误表示尝试从npm注册表下载“resize observer polyfill”包时超时。这可能是由于网络连接问题或npm注册表服务器的问题。 要解决此问题,您可以尝试以下步骤: 1.重试npm install命令:有时,网络问题会导致临时超时。再次运行npm…