- 01 -
基础语法
1.创建画布与子图
plt.figure():创建空白画布
figure.add_subplot():创建并选中子图
2.添加画布内容
3.保存与展示图形
plt.savafig() 保存路径
plt.show() 展示
#基础绘图语法
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0,1.1,0.1)
plt.title('lines')#添加标题
plt.xlabel('x')#添加x轴的名称
plt.ylabel('y')#添加y轴的名称
plt.xlim(0,1)#确定x轴的范围
plt.ylim(0,1)#确定y轴的范围
plt.xticks(np.arange(0,1.1,0.2))#规定刻度
plt.yticks(np.arange(0,1.1,0.2))
plt.plot(data,data**2)#添加y=x**2曲线
plt.plot(data,data**4)
plt.legend(['y=x^2','y=x^4'])
plt.savefig('C:\\Users\\小新\\Desktop\\sss.jpg')#保存路径
plt.show
#包含子图
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)#创建2行1列的子图,并开始绘制第一幅
plt.title('lines')#添加标题
plt.xlabel('x')#添加x轴的名称
plt.ylabel('y')#添加y轴的名称
plt.xlim(0,1)#确定x轴的范围
plt.ylim(0,1)#确定y轴的范围
plt.xticks(np.arange(0,1.1,0.2))#规定刻度
plt.yticks(np.arange(0,1.1,0.2))
plt.plot(rad,rad**2)#添加y=x**2曲线
plt.plot(rad,rad**4)
plt.legend(['y=x^2','y=x^4'])
#第二幅子图
ax2 = p1.add_subplot(2,1,2)#创建2行1列的子图,并开始绘制第一幅
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])#规定刻度
plt.yticks(np.arange(-1,1.1,0.5))
plt.plot(rad,np.sin(rad))#添加sin曲线
plt.plot(rad,np.cos(rad))
plt.legend(['sin','cos'])
plt.show()
import matplotlib.pyplot as plt
#原图
x = np.linspace(0,4*np.pi)#生成x轴的数据y = np.sin(x)#生成y轴数据
plt.plot(x,y,label = '$sin(x)$')#绘制sin曲线图
plt.title('sin')
plt.show
#修改rc参数后的图plt.rcParams['lines.linestyle'] = '-.'
plt.rcParams['lines.linewidth'] = 3
plt.plot(x,y,label='$sin(x)$')#绘制三角函数
plt.title('sin')
plt.show() #调节字体 import numpy as np
import matplotlib.pyplot as plt
#无法显示中文标题
plt.plot(x,y,label = '$sin(x)$')#绘制三角函数plt.title('sin曲线')
plt.show()
#设置rc参数显示中文标题#设置字体为SimHei显示中文
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus'] = False #设置正常显示符号
plt.plot(x,y,label='$sin(x)$')#绘制三角函数书
plt.title('sin曲线')
plt.show() - 03 - 各类图 散点图 matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,alpha=None, **kwargs) #size,color 折线图 matplotlib.pyplot.plot(*args,**kwargs) color参数的8种常用颜色的缩写。 直方图 matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs) 饼图 matplotlib.pyplot.pie(x,explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, … ) 箱线图 matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,meanline=None, labels=None, … ) - 04 - 实例 # 绘制直方图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('../data/国民经济核算季度数据.npz')
name = data['columns']## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
label = ['第一产业','第二产业','第三产业']## 刻度标签
plt.figure(figsize=(6,5))## 设置画布
plt.bar(range(3),values[-1,3:6],width = 0.5)## 绘制散点图
plt.xlabel('产业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(3),label)
plt.title('2017年第一季度各产业国民生产总值直方图')## 添加图表标题
plt.savefig('../tmp/2017年第一季度各产业国民生产总值直方图.png')
plt.show() # 饼图
plt.figure(figsize=(6,6))## 将画布设定为正方形,则绘制的饼图是正圆
label= ['第一产业','第二产业','第三产业']## 定义饼状图的标签,标签是列表
explode = [0.01,0.01,0.01]## 设定各项离心n个半径
plt.pie(values[-1,3:6],explode=explode,labels=label,
autopct='%1.1f%%')## 绘制饼图
plt.title('2017年第一季度各产业国民生产总值饼图')
plt.savefig('../tmp/2017年第一季度各产业生产总值占比饼图')
plt.show() # 箱线图
label= ['第一产业','第二产业','第三产业']## 定义标签
gdp = (list(values[:,3]),list(values[:,4]),list(values[:,5]))
plt.figure(figsize=(6,4))
plt.boxplot(gdp,notch=True,labels = label, meanline=True)
plt.title('2000-2017各产业国民生产总值箱线图')
plt.savefig('../tmp/2000-2017各产业国民生产总值箱线图.png')
plt.show() # 箱线图
label1 = ['第一产业','第二产业','第三产业']## 标签1
label2 = ['农业','工业','建筑','批发','交通',
'餐饮','金融','房地产','其他']## 标签2
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)) ## 子图1
ax1 = p.add_subplot(2,1,1)
## 绘制散点图
plt.boxplot(gdp,notch=True,labels = label1, meanline=True)
plt.title('2000-2017各产业国民生产总值箱线图')
plt.ylabel('生产总值(亿元)')## 添加y轴名称 ## 子图2
ax2 = p.add_subplot(2,1,2)
## 绘制散点图
plt.boxplot(gdp2,notch=True,labels = label2, meanline=True)
plt.title('2000-2017各行业国民生产总值箱线图')
plt.xlabel('行业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称 ## 保存并显示图形
plt.savefig('../tmp/国民生产总值分散情况箱线图.png')
plt.show() -end-