基础图形绘制
x = np.arange(0,1.1,0.1) # x 取值
print(x)
plt.figure() # 第一环节 创建画布
plt.plot(x,x**2) # 第二环节 绘制图形
plt.plot(x,x**4)
plt.show() # 第三环节 显示图形
结果
常用参数设置
x = np.arange(0,1.1,0.1) # x 取值
print(x)
plt.figure() # 第一环节 创建画布
plt.plot(x,x**2) # 第二环节 绘制图形
plt.plot(x,x**4)
plt.xlim(0,1) #限制x,y取值范围
plt.ylim(0,1)
plt.title('lines') #图的主题
plt.xlabel('x') # x,y轴对应的标签
plt.ylabel('y')
plt.legend(['y=x^2','y=x^4']) # 添加图例
plt.savefig('tmp/example.png') #保存图片
plt.show() # 第三环节 显示图形
结果
散点图绘制
#绘制散点图
import numpy as np
import matplotlib.pyplot as plt
data = np.load('tmp/国民经济核算季度数据.npz',allow_pickle=True)
data.files
columns = data['columns']
values = data['values']
data['values'].shape
plt.figure(figsize=(8,6))
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']= False
plt.scatter(values[:,1] , values[:, 3],marker='o')
plt.scatter(values[:,1] , values[:, 4],marker='*')
plt.scatter(values[:,1] , values[:, 5],marker='D')
plt.xticks(values[range(0,70,4),1],rotation=45)
plt.legend(['第一产业生产总值','第二产业生产总值','第三产业生产总值'])
plt.title('2000-2017年个产业生产总值散点图')
plt.ylabel('生产种植(亿元)')
plt.savefig('tmp/2000-2017年生产总值散点图.png')
plt.show()
绘制折线图
#绘制折线图
plt.figure(figsize=(8,6))
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']= False
plt.plot(values[:,1] , values[:, 3],marker='o')
plt.plot(values[:,1] , values[:, 4],marker='*')
plt.plot(values[:,1] , values[:, 5],marker='D')
plt.xticks(values[range(0,70,4),1],rotation=45)
plt.legend(['第一产业生产总值','第二产业生产总值','第三产业生产总值'])
plt.title('2000-2017年个产业生产总值散点图')
plt.ylabel('生产种植(亿元)')
plt.show()
绘制直方图
plt.figure(figsize=(8,6))
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']= False
plt.bar(columns[3:6],values[-1,3:6],color='r',width=0.6) #width代表柱子之间的距离 越靠近1越近
plt.title('2017年第一季度各产业生产总值直方图')
plt.ylabel('生产种植(亿元)')
my_height = values[-1,3:6]
for i in range(len(my_height)): #此for循环可以在柱子上显示数值
plt.text(i,my_height[i]+1000,my_height[i],va='bottom',ha='center')
plt.show()
绘制饼图
#绘制饼图
plt.figure(figsize=(6,6))
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']= False
labels = ['第一产业','第二产业','第三产业']
plt.pie(values[-1,3:6],explode=[0.01,0.01,0.01],labels = labels,autopct='%1.1f%%') # explode 指的是不同区域之间白色间隔的大小 autopct 是让图形显示百分比
plt.title('2017年第一季度各产业生产总值直方图')
plt.show()
绘制箱线图
#绘制箱线图
plt.figure(figsize=(6,6))
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']= False
labels = ['第一产业','第二产业','第三产业']
plt.boxplot(values[:,3:6],notch=True,labels = labels)
plt.show()