numpy 子图的使用(参考)

这篇博客详细介绍了如何利用numpy在Python中创建和管理子图,包括设置子图布局、绘制数据以及调整子图间距等技巧。通过实例代码展示,帮助读者深入理解numpy在图形绘制中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import matplotlib.pyplot as plt
import numpy as np


# 加载数据
data = np.load('国民经济核算季度数据.npz', allow_pickle=True)

columns = data['columns']
values = data['values']

# 想用中文必须进行设置RC参数
plt.rcParams['font.sans-serif'] = 'SimHei'
# 设置RC参数字体,让其支持中文
plt.rcParams['axes.unicode_minus'] = False

# 一个画布里面绘制多个图形
# 增加子图
# 创建画布,返回画布对象
fig = plt.figure(figsize=(40, 40),dpi=200)
# 给画布对象增加子图
# 参数1,2 表示增加的子图是几行几列,参数3表示第几张图
# 从该代码开始到下一个相同代码的内容都是这个子图的内容
fig.add_subplot(2, 1, 1)
x1 = values[:, 0]
# print(x)
# 第三列、第四列、第五列
y1 = values[:,3]
y2 = values[:,4]
y3 = values[:,5]

# 绘制图形
plt.plot(x1, y1, linestyle='--',marker='s')
plt.plot(x1, y2, linestyle='-',marker='s')
plt.plot(x1, y3, linestyle=':',marker='s')

# 增加修饰
# 增加标题
plt.title('2000-2017年各产业季度生产总值')

# 增加xy标签
plt.xlabel('时间')
plt.ylabel('各产业季度生产总值')

# 进行x刻度设置
x_label = values[:,1]
plt.xticks(x1[::4], x_label[::4], rotation=45, fontsize='xx-small')
# loc 参数可以设置图形位置
plt.legend(['第一产业','第二产业','第三产业'],loc='best', fontsize='xx-small')


fig.add_subplot(2, 1, 2)
# 准备数据
x2 = values[:, 0]
y4 = values[:, 6]
y5 = values[:, 7]
y6 = values[:, 8]
y7 = values[:, 9]
y8 = values[:, 10]
y9 = values[:, 11]
y10 = values[:, 12]
y11 = values[:, 13]
y12 = values[:, 14]
y13 = values[:, 6]
plt.scatter(x2, y4, marker='*')
plt.scatter(x2, y5, marker='o')
plt.scatter(x2, y6, marker='+')
plt.scatter(x2, y7, marker='.')
plt.scatter(x2, y8, marker='s')
plt.scatter(x2, y9, marker='d')
plt.scatter(x2, y10, marker='p')
plt.scatter(x2, y11, marker='*')
plt.scatter(x2, y12, marker='h')
# 增加标题
plt.title('2000-2017年各产业季度成产总值')

# 增加标签
plt.xlabel('时间')
plt.ylabel('各产业生产总值(亿元)', rotation=90)

# 增加刻度
x_label = values[:, 1]
plt.xticks(x2[::4], x_label[::4], rotation=45, fontsize='xx-small')

# 增加图例
plt.legend(["农业","工业","建筑业","批发业","交通业","餐饮业","房地产业","金融业","其他产业"], loc='best', fontsize='xx-small')

# 保存图片
plt.savefig('2000-2017年各产业生产总值')

# 图形展示
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值