Matplotlib数据可视化pyplot

绘图流程
在这里插入图片描述
一.创建画布与创建子图
第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制
在这里插入图片描述

F = plt.figure(figsize=(8, 8),dpi=80)
#figsize指定画布大小800*800
#dpi指定像素80
F.add_subplot(2, 2, 1)

子图的确定:
在这里插入图片描述
二.添加画布内容
第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形 之后。
在这里插入图片描述
设置字体大小参数:fontsize=int型
xticks(原先的x轴(数字)数组,替换成字符串的数组,rotation=30)
rotation是字体的旋转角度可以省略不写

在这里插入图片描述

1 散点图
是一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征的统计关系的一种图形。
值是由点在图表中的位置表示,类别是由图表中的不同标记表示,通常用于比较跨类别的数据
在这里插入图片描述
marker:
在这里插入图片描述
c:
在这里插入图片描述
2.折线图
折线图是一种将数据点按照顺序连接起来的图形。可以看做是将散点图按照x轴坐标顺序连接起来的图形。
主要功能是查看因变量y随着x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。
在这里插入图片描述
matplotlib.pyplot.plot(*args, **kwargs)

在这里插入图片描述
marker,color上述表中有。
linestyle:
在这里插入图片描述
3.直方图
直方图又称质量分布图,是统计报告图中的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比
用直方图可以比较直观的看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。
在这里插入图片描述
matplotlib.pyplot.bar(left,height,width=0.8,bottom=None,hold=None,data=None,**kwargs)
在这里插入图片描述
4.饼图
饼图是将各项的大小与各项总和的比例显示在一张饼中,以饼的大小来确定每一项的占比。
饼图可以比较清楚的反应出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观。
在这里插入图片描述
在这里插入图片描述
5、箱线图
箱线图也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。
箱线图利用数据中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据,它也可以粗略地看出数据是否具有对称性、分布的分散程度信息,特别可以用于对几个样本的比较。
在这里插入图片描述
在这里插入图片描述
5.雷达图

# 将整个圆切成5份
dataLenth = 5
# 角度范围
angles = np.linspace(0, 2 * np.pi, dataLenth, endpoint=False)
print(angles)
# 数据
data = [2, 3.5, 4, 4.5, 5]
data1 = [4, 2, 4.5, 3, 2.5]
# 文字标签
lables = ['生存', '输出', '团战', 'KDA', '发育']

# 闭合(一定要有闭合)
# 数据闭合
new_data = np.concatenate((data, [data[0]]))
new_data1 = np.concatenate((data1, [data1[0]]))
# 角度闭合
new_angles = np.concatenate((angles, [angles[0]]))

plt.figure()

# 绘图
plt.polar(new_angles, new_data, color='r', marker='o')
plt.polar(new_angles, new_data1, color='g', marker='*')
# 刻度标签
plt.xticks(angles, lables)
plt.title('王者荣耀')
plt.show()

三、存储图形与展示图形
在这里插入图片描述

通用设置一般放在代码之前

'~~~~~~~~~~~~~~通用设置~~~~~~~~~~~~~'
# 输出设置
np.set_printoptions(threshold=np.NaN)
# 显示中文(这俩句要写一块写)
plt.rcParams['font.sans-serif'] = 'SimHei'
# 正常显示符号,解决保存图像是符号'-'显示 成方块
plt.rcParams['axes.unicode_minus'] = False

例如:

import matplotlib.pyplot as plt
import numpy as np

'~~~~~~~~~~~~~~通用设置~~~~~~~~~~~~~'
# 输出设置
np.set_printoptions(threshold=np.NaN)
# 显示中文(这俩句要写一块写)
plt.rcParams['font.sans-serif'] = 'SimHei'
# 正常显示符号,解决保存图像是符号'-'显示 成方块
plt.rcParams['axes.unicode_minus'] = False

'~~~~~~~~~~~~~~~~~~~~~~~~~编程代码区域~~~~~~~~~~~~~~~~~~~~'

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

x = ['第一产业', '第二产业', '第三产业']
F = plt.figure(figsize=(8, 8),dpi=80)
F.add_subplot(2, 2, 1)

plt.title('2000年第一季度国民生产总值产业构成分布直方图', fontsize=8)
value = values[0, 3:6]
plt.xticks(range(3), x, fontsize=6)
plt.yticks(fontsize=6)
plt.xlabel('产业', fontsize=6)
plt.ylabel('生产总值(亿元)', fontsize=6)
plt.bar(range(3), value)

F.add_subplot(2, 2, 2)

plt.title('2017年第一季度国民生产总值产业构成分布直方图', fontsize=8)
value = values[-1, 3:6]
plt.xticks(range(3), x, fontsize=6)
plt.yticks(fontsize=6)
plt.xlabel('产业', fontsize=4)
plt.ylabel('生产总值(亿元)', fontsize=6)
plt.bar(range(3), value)

F.add_subplot(2, 2, 3)

x = ['农业','工业','建筑','批发','交通行业','餐饮','金融','房地产','其他']
plt.title('2000年第一季度国民生产总值行业构成分布直方图', fontsize=8)
value = values[0, 6:]
plt.xticks(range(9), x, fontsize=6)
plt.yticks(fontsize=6)
plt.xlabel('行业', fontsize=6)
plt.ylabel('生产总值(亿元)', fontsize=6)
plt.bar(range(9), value)

F.add_subplot(2, 2, 4)
plt.title('2017年第一季度国民生产总值行业构成分布直方图', fontsize=8)
value = values[-1, 6:]
plt.xticks(range(9), x, fontsize=6)
plt.yticks(fontsize=6)
plt.xlabel('行业', fontsize=6)
plt.ylabel('生产总值(亿元)', fontsize=6)
plt.bar(range(9), value)
plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

'~~~~~~~~~~~~~~通用设置~~~~~~~~~~~~~'
# 输出设置
np.set_printoptions(threshold=np.NaN)
# 显示中文(这俩句要写一块写)
plt.rcParams['font.sans-serif'] = 'SimHei'
# 正常显示符号,解决保存图像是符号'-'显示 成方块
plt.rcParams['axes.unicode_minus'] = False

'~~~~~~~~~~~~~~~~~~~~~~~~~编程代码区域~~~~~~~~~~~~~~~~~~~~'

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

x = ['第一产业', '第二产业', '第三产业']
F = plt.figure(figsize=(18,10))
F.add_subplot(2, 2, 1)

plt.title('2000年第一季度国民生产总值产业构成分布饼图')
value = values[0, 3:6]
plt.pie(value,explode=[0.01,0.01,0.01],labels=x,autopct='%.1f%%')

F.add_subplot(2, 2, 2)

plt.title('2017年第一季度国民生产总值产业构成分布饼图')
value = values[-1, 3:6]
plt.pie(value,explode=[0.01,0.01,0.01],labels=x,autopct='%.1f%%')

F.add_subplot(2, 2, 3)
#
x = ['农业','工业','建筑','批发','交通行业','餐饮','金融','房地产','其他']
plt.title('2000年第一季度国民生产总值行业构成分布饼图')
value = values[0, 6:]
def exp():
    for i in range(len(value)):
        yield 0.01
explode = []
for j in exp():
    explode.append(j)

plt.pie(value,explode=explode,labels=x,autopct='%.1f%%')

F.add_subplot(2, 2, 4)
plt.title('2017年第一季度国民生产总值行业构成分布饼图')
value = values[-1, 6:]
plt.pie(value,explode=explode,labels=x,autopct='%.1f%%')
plt.show()

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值