数据分析--matplotlib.pyplot--散点图、折线图、直方图、饼图

散点图

散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。
值是由点在图表中的位置表示,类别是由图表中的不同标记表示,通常用于比较跨类别的数据。
散点图:主要用于分析特性间的相关关系
scatter 函数:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)
常用参数及说明如下表所示:
在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

#显示中文
#注意必须在差UN关键画布之前声明
plt.rcParams['font.sans-serif'] = 'SimHei'
#设置正常显示符号,解决保存图像是符号’-‘显示方块
plt.rcParams['axes.unicode_minus'] = False

#1.数据加载
data = np.load('国民经济核算季度数据.npz')
columns = data['columns']
values = data['values']
#将数据显示完整
np.set_printoptions(threshold=np.NaN)

#2.可视化
plt.figure(figsize=(8,7))

#设置
plt.xlabel('年份')
plt.ylabel('生产总值(亿元)')

plt.title('散点图')

plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation='30')
#散点图
plt.scatter(values[:,0],values[:,2],marker='o')

plt.show()

在这里插入图片描述

需求: 使用不同颜色、不同形状的点,绘制2000~2017年间各产业各季度国民生产总值 、的散点图


import matplotlib.pyplot as plt
import numpy as np

#显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#设置正常显示符号,解决保存图像是符号‘-’显示方块
plt.rcParams['axes.unicode_minus'] = False

#1.数据加载
data = np.load('国民经济核算季度数据.npz')
columns = data['columns']
print(columns)

values = data['values']
print(values)

plt.figure()

plt.scatter(values[:,0],values[:,3],c='red',marker='D')
plt.scatter(values[:,0],values[:,4],c='blue',marker='o')
plt.scatter(values[:,0],values[:,5],c='yellow',marker='v')

plt.show()

在这里插入图片描述

折线图

折线图(line chart)是一种将数据点按照顺序连接起来的图形。可以看作是将散点图,按照 x 轴坐标顺序连接起来的图形。
折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。
折线图:主要分析是自变量与因变量特性间趋势关系

plot 函数:
matplotlib.pyplot.plot(*args, **kwargs)
plot 函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数主要如
下:
在这里插入图片描述
color 参数的 8 种常用颜色的缩写:
在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

#显示中文
#注意必须在差UN关键画布之前声明
plt.rcParams['font.sans-serif'] = 'SimHei'

#设置正常显示符号,解决保存图像是符号’-‘显示方块
plt.rcParams['axes.unicode_minus'] = False

#1.数据加载
data = np.load('国民经济核算季度数据.npz')
columns = data['columns']
values = data['values']

#将数据显示完整
np.set_printoptions(threshold=np.NaN)
print(columns)
print(values)

plt.title('折线图')

#折线图
# 格式:plt.plot(x,y,color='',linestyle='',marker='',alpha='')
#参数简写:'颜色-点的形状-线的样式'
plt.plot(values[:,0],values[:,2],'ro--')

plt.show()

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

需求:用折线图来绘制各个季度各产业的数据

import matplotlib.pyplot as plt
import numpy as np

#显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#设置正常显示符号,解决保存图像是符号‘-’显示方块
plt.rcParams['axes.unicode_minus'] = False

#1.数据加载
data = np.load('国民经济核算季度数据.npz')
columns = data['columns']
print(columns)

values = data['values']
print(values)

plt.figure()

#参数简写:'颜色点的形状线的样式'
plt.plot(values[:,0],values[:,3],'bs-')
plt.plot(values[:,0],values[:,4],'ro--')
plt.plot(values[:,0],values[:,5],'g*-.')

plt.show()

在这里插入图片描述

直方图

直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。
用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。
bar 函数:
matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs )
常用参数及说明如下表所示:
在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

#显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#设置正常显示符号,解决保存图像是符号‘-’显示方块
plt.rcParams['axes.unicode_minus'] = False

#1.数据加载
data = np.load('国民经济核算季度数据.npz')
columns = data['columns']
print(columns)

values = data['values']
print(values)

#刻度标签
label =['第一产业','第二产业','第三产业']
#eg:拿出2017年第一季度数据
value = values[-1,3:6]

#可视化
plt.figure()

plt.xticks(range(3),label)

plt.title('2017年第一季度各产业国民生产总值直方图')

plt.xlabel('产业')
plt.ylabel('生产总值(亿元)')

plt.bar(range(3),value,width=0.5)

plt.show()

在这里插入图片描述

饼图

饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。
饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观。
pie 函数:
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, … )
常用参数及说明如下表所示:

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

#显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#设置正常显示符号,解决保存图像是符号‘-’显示方块
plt.rcParams['axes.unicode_minus'] = False

#1.数据加载
data = np.load('国民经济核算季度数据.npz')
columns = data['columns']
print(columns)

values = data['values']
print(values)

#数据
x = values[-1,3:6]

#可视化
plt.figure()

#常用设置
plt.title('2017年第一季度各产业国民生产总值饼图')

#饼图
labels = ['第一产业','第二产业','第三产业']

plt.pie(x,explode=[0.1,0.01,0.01],labels=labels,autopct='%.1f%%')

plt.savefig('img/饼图.png')

plt.show()

在这里插入图片描述

通过直方图分析 2000 年第一季度和 2017 年第一季度之间的三大产业的国民生产总值,可以发现各产业绝对数值之间的关系,并通过对比发现产业结构的变化。

# 加载数据
data = np.load('国民经济核算季度数据.npz')

columns = data['columns']
values = data['values']

#刻度标签
lable = ['第一产业','第二产业','第三产业']

value = values[0,3:6]

#画布
F = plt.figure(figsize=(10,10),dpi=100)

#创建子视图
F.add_subplot(2,2,1)

plt.xticks(range(3),lable)

plt.title('2000年第一季度各产业国民生产总值直方图')

# 设置
plt.xlabel('产业')
plt.ylabel('生产总值(亿元)')

plt.bar(range(3),value,width=0.5)


#第二张图
#创建子视图
F.add_subplot(2,2,2)

value2 = values[-1,3:6]

plt.xticks(range(3),lable)

plt.title('2017年第一季度各产业国民生产总值直方图')

# 设置
plt.xlabel('产业')
plt.ylabel('生产总值(亿元)')

plt.bar(range(3),value2,width=0.5)



#第三张图
#创建子视图
F.add_subplot(2,2,3)

value3 = values[0,6:15]

lable3 = ['农林', '工业', '建筑', '批发', '交通', '餐饮', '金融业', '房地产', '其他']

plt.xticks(range(9),lable3)

plt.title('2000年第一季度各产业国民生产总值直方图')

# 设置
plt.xlabel('产业')
plt.ylabel('生产总值(亿元)')

plt.bar(range(9),value3,width=0.5)


#第四张图
#创建子视图
F.add_subplot(2,2,4)

value4 = values[-1,6:15]

lable3 = ['农林', '工业', '建筑', '批发', '交通', '餐饮', '金融业', '房地产', '其他']

plt.xticks(range(9),lable3)

plt.title('2017年第一季度各产业国民生产总值直方图')

# 设置
plt.xlabel('产业')
plt.ylabel('生产总值(亿元)')

plt.bar(range(9),value4,width=0.5)
#保存图片
# plt.savefig('home.png')

# plt.show()

在这里插入图片描述

通过分析 2000 年与 2017 年不同的产业和行业在国民生产总值中的占比,可以发现我国
产业结构变化和行业变迁。

#p1
F = plt.figure(figsize=(12, 9))
F.add_subplot(2, 2, 1)
plt.title('2000年第一季度各产业国民生产总值饼图')
x = values[0, 3:6]
plt.pie(x, explode=(0.02, 0.01, 0.01), labels=['第一产业', '第二产业', '第三产业'], autopct='%.1f%%')
#p2
F.add_subplot(2, 2, 2)
plt.title('2017年第一季度各产业国民生产总值饼图')
x = values[-1, 3:6]
plt.pie(x, explode=(0.02, 0.01, 0.01), labels=['第一产业', '第二产业', '第三产业'], autopct='%.1f%%')
#p3
F.add_subplot(2, 2, 3)
plt.title('2000年第一季度各行业国民生产总值饼图')
x = values[0, 6:15]
plt.pie(x, explode=(0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,),
        labels=['农业', '工业', '建筑', '批发', '交通', '餐饮', '金融', '房地产', '其他'], autopct='%.1f%%')
#p4
F.add_subplot(2, 2, 4)
plt.title('2017年第一季度各行业国民生产总值饼图')
x = values[-1, 6:15]
plt.pie(x, explode=(0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,),
        labels=['农业', '工业', '建筑', '批发', '交通', '餐饮', '金融', '房地产', '其他'], autopct='%.1f%%')


plt.show()

在这里插入图片描述

  • 9
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值