导入:
jupyter notebook——是一个交互式笔记本,支持运行 40 多种编程语言
matplotlib.pyplot——python数据可视化
numpy——Python的开源的数值计算扩展(数组)
教材:《Python数据分析与应用》黄红梅、张良均
3.2分析特征间的关系
- 散点图
特征:揭示特征间的相关关系
函数:scatter
语法: matplotlib.pyplot.scatter (x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,verts=None,edgecolors=None,hold=None,data=None,**kwargs)
:
x:x轴
y:y轴
s:大小
marker:点的类型
c:颜色
alpha:透明度
<1>绘制2010-2017各季度国民生产总值散点图
import numpy as np #导入numpy计算模块
import matplotlib.pyplot as plt #导入matplotlib.pyplot画图模块
plt.rcParams['font.sans-serif']='SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']=False
data=np.load('E:\大三上\张宇萌\实习任务安排(2019-9-19)\国民经济核算季度数据.npz',allow_pickle=True)#allow_pickle=True解决ValueError:Object arrarys cannot be loaded when allow_pickle=False的问题
name=data['columns']#提取其中的column数组,视为数据的标签
values=data['values']#提取values数组:数据存在位置
plt.figure(figsize=(8,7))#画布
plt.ylim((0,22500))#设置y轴范围
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.scatter(values[:,0],values[:,2],marker='o')#绘制散点图
plt.xlabel('年份');plt.ylabel=('生产总值(亿元)')
plt.title('2000-2017各年度国民生产总值散点图')#添加图标标题
plt.savefig('E:\大三上\张宇萌\实习任务安排(2019-9-19)\散点图.png')
plt.show()
其中plt(matplotlib.pyplot)使用rc配置文件来自定义图形的各种默认属性,称之为rc配置或rc参数。
参考:https://blog.csdn.net/weixin_39010770/article/details/88200298
<2>使用不同颜色、不同形状的点绘制
import numpy as np #导入numpy计算模块
import matplotlib.pyplot as plt #导入matplotlib.pyplot画图模块
plt.rcParams['font.sans-serif']='SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']=False
data=np.load('E:\大三上\张宇萌\实习任务安排(2019-9-19)\国民经济核算季度数据.npz',allow_pickle=True)
name=data['columns']#提取其中的column数组,视为数据的标签
values=data['values']#提取values数组:数据存在位置
plt.figure(figsize=(8,7))
plt.scatter(values[:,0],values[:,3],marker='o',c='red')
plt.scatter(values[:,0],values[:,4],marker='D',c='blue')
plt.scatter(values[:,0],values[:,5],marker='v',c='yellow')
plt.xlabel('年份')
plt.ylabel('生产总值(亿元)')
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)#x坐标轴:从0到70,共四点,旋转45°
plt.title('2000-2017年各产业各季度国民生产总值散点图')
plt.legend(['第一产业','第二产业','第三产业'])#图例
plt.savefig('散点图.png')
plt.show()
- 折线图
特征:揭示特征间的趋势关系
函数:plot
语法:matplotlib.pyplot.plot(*args,**kwargs)
#linestyle:线条类型
<1>2000-2017年各季度国民生产总值折线图
import numpy as np #导入numpy计算模块
import matplotlib.pyplot as plt #导入matplotlib.pyplot画图模块
plt.rcParams['font.sans-serif']='SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus']=False
data=np.load('E:\大三上\张宇萌\实习任务安排(2019-9-19)\国民经济核算季度数据.npz',allow_pickle=True)
name=data['columns']#提取其中的column数组,视为数据的标签
values=data['values']#提取values数组:数据存在位置
plt.figure(figsize=(8,7))
plt.plot(values[:,0],values[:,2],color='r',linestyle='--')
plt.xlabel('年份')
plt.ylabel('生产总值(亿元)')
plt.ylim((0,225000))
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年各季度国民生产总值折线图')
plt.savefig('折线图.png')
<2>绘制点线图
plt.figure(figsize=(8,7))
plt.plot(values[:,0],values[:,2],color='r',linestyle='--',marker='o')
plt.xlabel('年份')
plt.ylabel('生产总值(亿元)')
plt.ylim((0,225000))
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年各季度国民生产总值点线图')
plt.savefig('点线图.png')
<3>各产业折线图
plt.figure(figsize=(8,7))
plt.plot(values[:,0],values[:,3],'bs-',
values[:,0],values[:,4],'ro-',
values[:,0],values[:,5],'gH--')
plt.xlabel('年份')
plt.ylabel('生产总值(亿元)')
plt.ylim((0,225000))
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年各产业各季度国民生产总值点线图')
plt.savefig('各产业点线图.png')