Matplotlib

1 曲线图

import numpy as np
import matplotlib.pyplot as plt

rad = np.arange(0,np.pi*2,0.01)
##第一幅子图
p1 = plt.figure(figsize=(8,6),dpi=80)## 确定画布大小
ax1 = p1.add_subplot(2,1,1)## 创建一个两行1列的子图,并开始绘制第一幅
plt.plot(rad,rad**2)## 添加y=x^2曲线
plt.plot(rad,rad**4)## 添加y=x^4曲线


##第二幅子图
ax2 = p1.add_subplot(2,1,2)## 创开始绘制第2幅
##设置rc参数显示中文标题
## 设置字体为SimHei显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False ## 设置正常显示符号
plt.title('sin/cos图') ## 添加标题
plt.xlabel('rad')## 添加x轴的名称
plt.ylabel('value')## 添加y轴的名称
plt.xlim((0,np.pi*2))## 确定x轴范围
plt.ylim((-1,1))## 确定y轴范围
plt.xticks([0,np.pi/2,np.pi,np.pi*1.5,np.pi*2])## 规定x轴刻度
plt.yticks([-1,-0.5,0,0.5,1])## 确定y轴刻度
plt.rcParams['lines.linestyle'] = '-.'
plt.rcParams['lines.linewidth'] = 3
plt.plot(rad,np.sin(rad))## 添加sin曲线
plt.plot(rad,np.cos(rad))## 添加cos曲线
plt.legend(['sin','cos'])
plt.show()

在这里插入图片描述

2 散点图和折线图


import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('国民经济核算季度数据.npz')
name = data['columns']## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
p = plt.figure(figsize=(12,12)) ##设置画布

ax1 = p.add_subplot(2,1,1)
plt.scatter(values[:,0],values[:,3], marker='o',c='r')## 绘制散点
plt.scatter(values[:,0],values[:,4], marker='D',c='b')## 绘制散点
plt.scatter(values[:,0],values[:,5], marker='v',c='y')## 绘制散点

## 子图2
ax2 = p.add_subplot(2,1,2)
plt.scatter(values[:,0],values[:,6], marker='o',c='r')## 绘制散点
plt.scatter(values[:,0],values[:,7], marker='D',c='b')## 绘制散点
plt.scatter(values[:,0],values[:,8], marker='v',c='y')## 绘制散点
plt.scatter(values[:,0],values[:,9], marker='8',c='g')## 绘制散点
plt.scatter(values[:,0],values[:,10], marker='p',c='c')## 绘制散点
plt.scatter(values[:,0],values[:,11], marker='+',c='m')## 绘制散点
plt.scatter(values[:,0],values[:,12], marker='s',c='k')## 绘制散点
## 绘制散点
plt.scatter(values[:,0],values[:,13], marker='*',c='purple')
## 绘制散点
plt.scatter(values[:,0],values[:,14], marker='d',c='brown')
plt.legend(['农业','工业','建筑','批发','交通',
        '餐饮','金融','房地产','其他'])
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)

plt.show()





p1 = plt.figure(figsize=(8,7))## 设置画布
## 子图1
ax3 = p1.add_subplot(2,1,1)
plt.plot(values[:,0],values[:,3],'b-',
        values[:,0],values[:,4],'r-.',
        values[:,0],values[:,5],'g--')## 绘制折线图
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.title('2000-2017年各产业季度生产总值折线图')## 添加图表标题
plt.legend(['第一产业','第二产业','第三产业'])## 添加图例
## 子图2
ax4 = p1.add_subplot(2,1,2)
plt.plot(values[:,0],values[:,6], 'r-',## 绘制折线图
        values[:,0],values[:,7], 'b-.',## 绘制折线图
        values[:,0],values[:,8],'y--',## 绘制折线图
        values[:,0],values[:,9], 'g:',## 绘制折线图
        values[:,0],values[:,10], 'c-',## 绘制折线图
        values[:,0],values[:,11], 'm-.',## 绘制折线图
        values[:,0],values[:,12], 'k--',## 绘制折线图
        values[:,0],values[:,13], 'r:',## 绘制折线图
        values[:,0],values[:,14], 'b-')## 绘制折线图
plt.legend(['农业','工业','建筑','批发','交通',
        '餐饮','金融','房地产','其他'])
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
# plt.savefig('../tmp/2000-2017年季度各行业生产总值折线子图.png')
plt.show()

在这里插入图片描述
在这里插入图片描述

3柱状图、圆饼图、线箱图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('国民经济核算季度数据.npz')
name = data['columns']## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置


label1 = ['第一产业','第二产业','第三产业']## 刻度标签1
label2 = ['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他']## 刻度标签2
p = plt.figure(figsize=(12,12))


ax1 = p.add_subplot(2,2,1)## 子图1
plt.bar(range(3),values[0,3:6],width = 0.5)## 绘制柱状图图
plt.xticks(range(3),label1)

ax2 = p.add_subplot(2,2,2)## 子图2
plt.bar(range(3),values[-1,3:6],width = 0.5)## 绘制柱状图图

ax3 = p.add_subplot(2,2,3)## 子图3
plt.bar(range(9),values[0,6:],width = 0.5)## 绘制柱状图图
plt.xticks(range(9),label2)

ax4 = p.add_subplot(2,2,4)## 子图4
plt.bar(range(9),values[-1,6:],width = 0.5)## 绘制柱状图图
plt.xticks(range(9),label2)

plt.show()



explode1 = [0.01,0.01,0.01]#模块之间的缝隙
explode2 = [0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01]
p = plt.figure(figsize=(12,12))
ax1 = p.add_subplot(2,2,1)## 子图1
plt.pie(values[0,3:6],explode=explode1,labels=label1,autopct='%1.1f%%')## 绘制饼图

ax2 = p.add_subplot(2,2,2)## 子图2
plt.pie(values[-1,3:6],explode=explode1,labels=label1,autopct='%1.1f%%')## 绘制饼图

ax3 = p.add_subplot(2,2,3)## 子图3
plt.pie(values[0,6:],explode=explode2,labels=label2,autopct='%1.1f%%')## 绘制饼图

ax4 = p.add_subplot(2,2,4)## 子图4
plt.pie(values[-1,6:],explode=explode2,labels=label2,autopct='%1.1f%%')## 绘制饼图

plt.show()




gdp1 = (list(values[:,3]),list(values[:,4]),list(values[:,5]))#几列数据就有几个线箱图
gdp2 = ([list(values[:,i]) for i in range(6,15)])
p = plt.figure(figsize=(8,8))

ax1 = p.add_subplot(2,1,1)## 子图1
plt.boxplot(gdp1,notch=True,labels = label1, meanline=True)

ax2 = p.add_subplot(2,1,2)## 子图2
plt.boxplot(gdp2,notch=True,labels = label2, meanline=True)

plt.show()


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值