Python 入门 matplotlib数据可视化基础【二】

分析特征之间的关系【散点&折线图】

绘制散点图

适用场景

散点图是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点的分布形态反映特征间的统计关系的一种图形。
可以提供两类关键信息:
1)特征之间是否存在数值或者数量的关联趋势,若存在,是线性的还是非线性的
2)找到异常值。
3)散点图可以通过散点的疏密程度和变化趋势表示两个特征的数据量关系,若有3个特征,则其中一个特征为类别型,散点图改变不同特征的点的形状或者颜色,即可了解两个热证和这个类别型之间的关系。

scatter函数

pyplot中绘制散点图的函数为scatter,语法:
plt.scatter(x , y ,s = none , c = none ,marker = none , cmap = none ,norm = none ,vimin = none ,vmax = none ,alpha = nne ,linewidths = none , verts = none , edgecolors = none , data = none,**kwargs)
常用参数及其说明:
x , y 接收array,表示x轴和y轴对应的数据,无默认
s 接收数值或者一维的array
c 接收颜色
marker 接收特定的string,表示绘制点的类型
alpha 接收0~1的小数,表示点的透明度

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('E:/python/data/国民经济核算季度数据.npz')
name = data['columns'] #提取其中的columns数组视为数据的标签
values = data['values'] #提取其中的values数组视为数据的存在位置 
plt.figure(figsize = (8,7)) #设置画布
plt.scatter(values[:,0],values[:,2] , marker = '*',c= 'r')#以数据的第零列做x轴,第三列做y轴,来描绘散点图
plt.xlable('年份')
plt.ylable('生产总值(亿元)')
plt.ylim((0,225000))
plt.xticks (range(0,70,4),values[range(0,70,4),1],rotation = 45)#此时取得值都是第一季度的
plt.title('2000-2017年各季度国民生产总值')
plt.show()

在这里插入图片描述
多特征:

plt.figure(figsize = (8,7))
#绘制散点图1
plt.scatter(values[:,0],values[:,3] , marker = 'o',c= 'y')
#绘制散点图2
plt.scatter(values[:,0],values[:,4] , marker = 'D',c= 'b',alpha = 0.3)
#绘制散点图3
plt.scatter(values[:,0],values[:,5] , marker = '^',c= 'r',alpha = 0.8)
plt.xlabel('年份')
plt.ylable('生产总值(亿元)')
plt.xticks (range(0,70,4),values[range(0,70,4),1],rotation = 45)#此时取得值都是第一季度的
plt.title('2000-2017年各季度各产业国民生产总值')
plt.legend(['第一产业','第二产业','第三产业','第四产业'])
plt.show()

在这里插入图片描述

绘制折线图

折线图的功能主要是查看因变量Y随着自变量X改变的趋势

plot函数

语法:
plt.plot(x , y , color = none ,linestyle = none ,marker = none ,alpha = nne )
常用参数及其说明:
x , y 接收array,表示x轴和y轴对应的数据,无默认
color 接收颜色
marker 接收特定的string,表示绘制点的类型
alpha 接收0~1的小数,表示点的透明度
color 参数的常用颜色:
在这里插入图片描述

plt.figure(figsize = (8,7)) #设置画布
plt.plot(values[:,0],values[:,2] , marker = '*',color= 'm',linestyle = '-')#以数据的第零列做x轴,第三列做y轴,来描绘散点图
plt.xlable('年份')
plt.ylable('生产总值(亿元)')
plt.ylim((0,225000))
plt.xticks (range(0,70,4),values[range(0,70,4),1],rotation = 45)#此时取得值都是第一季度的
plt.title('2000-2017年各季度国民生产总值')
plt.show()

在这里插入图片描述
多个特征:

plt.figure(figsize = (8,7))
#绘制散点图1
plt.plot(values[:,0],values[:,3] , marker = 'o',color= 'y')
#绘制散点图2
plt.plot(values[:,0],values[:,4] , marker = 'D',color= 'b',alpha = 0.3)
#绘制散点图3
plt.plot(values[:,0],values[:,5] , marker = '^',color= 'r',alpha = 0.8)
plt.xlabel('年份')
plt.ylable('生产总值(亿元)')
plt.xticks (range(0,70,4),values[range(0,70,4),1],rotation = 45)#此时取得值都是第一季度的
plt.title('2000-2017年各季度各产业国民生产总值')
plt.legend(['第一产业','第二产业','第三产业'])
plt.savefig('E:/python/数据、代码/第3章/01-任务程序/data/国民经济核算季度数据.png')
plt.show()

在这里插入图片描述

综合实现

各产业与行业的国民生产总值的散点图

pp = plt.figure(figsize = (12,12)) #设置画布
#子图1
ax1 = pp.add_subplot(2,1,1)
plt.scatter(values[:,0],values[:,3] , marker = 'o',c= 'y')
plt.scatter(values[:,0],values[:,4] , marker = 'D',c= 'b',alpha = 0.3)
plt.scatter(values[:,0],values[:,5] , marker = '^',c= 'r',alpha = 0.8)
plt.title('2000-2017年各季度国民生产总值')
plt.legend(['第一产业','第二产业','第三产业'])

#子图2
ax2 = pp.add_subplot(2,1,2)
plt.scatter(values[:,0],values[:,6] , marker = 'o',c= 'y')
plt.scatter(values[:,0],values[:,7] , marker = 'D',c= 'b',alpha = 0.3)
plt.scatter(values[:,0],values[:,8] , marker = '^',c= 'r',alpha = 0.8)
plt.legend(['A','B','C'])
plt.xlabel('年份')
plt.ylable('生产总值(亿元)')
plt.xticks (range(0,70,4),values[range(0,70,4),1],rotation = 45)#此时取得值都是第一季度的

plt.show()

在这里插入图片描述
各产业与行业的国民生产总值的折线图

pp = plt.figure(figsize = (12,12)) #设置画布
#子图1
ax1 = pp.add_subplot(2,1,1)
plt.plot(values[:,0],values[:,3] , marker = 'o',color= 'y')
plt.plot(values[:,0],values[:,4] , marker = 'D',color= 'b',alpha = 0.3)
plt.plot(values[:,0],values[:,5] , marker = '^',color= 'r',alpha = 0.8)
plt.title('2000-2017年各季度国民生产总值')
plt.legend(['第一产业','第二产业','第三产业'])

#子图2
ax2 = pp.add_subplot(2,1,2)
plt.plot(values[:,0],values[:,6] , marker = 'o',color= 'y')
plt.plot(values[:,0],values[:,7] , marker = 'D',color= 'b',alpha = 0.3)
plt.plot(values[:,0],values[:,8] , marker = '^',color= 'r',alpha = 0.8)
plt.legend(['A','B','C'])
plt.xlabel('年份')
plt.ylable('生产总值(亿元)')
plt.xticks (range(0,70,4),values[range(0,70,4),1],rotation = 45)#此时取得值都是第一季度的

plt.show()

在这里插入图片描述

发布了11 篇原创文章 · 获赞 17 · 访问量 1287

猜你喜欢

转载自blog.csdn.net/nnnnn68/article/details/105787924