散点图
散点图(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()