matplotlib数据可视化 — 初级图形绘制

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

第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。

matplotlib数据可视化 — 初级图形绘制_第2张图片
第三部分主要用于保存和显示图形

在这里插入图片描述pyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数

matplotlib数据可视化 — 初级图形绘制_第3张图片线条标记【也可以用于散点图】
matplotlib数据可视化 — 初级图形绘制_第4张图片
颜色缩写
matplotlib数据可视化 — 初级图形绘制_第5张图片
折线图

matplotlib数据可视化 — 初级图形绘制_第6张图片

import numpy
from matplotlib import pyplot



data = numpy.load('./国民经济核算季度数据.npz',allow_pickle=True)
# 遍历data对象,获得键
# columns
# values
for i in data:
    print(i)
# 根据键获得键值
columns = data['columns']
print(columns)
values = data['values']
print(values)

# 创建画布
fig = pyplot.figure(figsize=(10,8),dpi=80)

#在画布中创建多个子图
# 参数1 子图的行数
# 参数 子图的列数
# 参数 第几个子图

# 默认不支持中文,需要配置RC 参数
pyplot.rcParams['font.sans-serif']='SimHei'
#设置字体之后不支持负号,需要去设置RC参数更改编码
pyplot.rcParams['axes.unicode_minus']=False

#调整子图之间的间距
fig.subplots_adjust(wspace=0.5,hspace=0.5)



# # # 第一个子图开始--------------------------
fig.add_subplot(2,1,1)

# 绘图
# 构建坐标
x = values[:,0]
y1 = values[:,3]
y2 = values[:,4]
y3 = values[:,5]

#绘图
pyplot.plot(x,y1)
pyplot.plot(x,y2)
pyplot.plot(x,y3)

#增加标题
pyplot.title('2000-2017年各个产业与行业生产总值折线图')

# 添加横轴,纵轴的标题
pyplot.ylabel('生产总值(亿元)')

# 增加图例
legend = [i[:4] for i in columns[3:6]]
pyplot.legend(legend,loc=2)



# # # 第二个子图开始--------------------------
fig.add_subplot(2,1,2)

# 绘图

# 构建坐标
x = values[:,1]
y1 = values[:,6]
y2 = values[:,7]
y3 = values[:,8]
y4 = values[:,9]
y5 = values[:,10]
y6 = values[:,11]
y7 = values[:,12]
y8 = values[:,13]
y9 = values[:,14]

pyplot.plot(x,y1)
pyplot.plot(x,y2)
pyplot.plot(x,y4,linestyle='--')
pyplot.plot(x,y5,linestyle='-.')
pyplot.plot(x,y6,linestyle=':')
pyplot.plot(x,y7,linestyle='-')
pyplot.plot(x,y8,linestyle='--')
pyplot.plot(x,y9,linestyle='-.')

# 添加横轴,纵轴的标题
pyplot.ylabel('生产总值(亿元)')
pyplot.xlabel('年度(季度)')

# 增加图例
legend = [i[:2] for i in columns[6:14]]
pyplot.legend(legend,loc=2)



# 重写设置x轴的值
xticks= values[:,1]
pyplot.xticks(x[::4],xticks[::4],rotation=45,horizontalalignment='right',fontsize=10)

# 保存图片
pyplot.savefig('国民经济核算季度数据折线图.png')
# 展示图片
pyplot.show()

直方图

import numpy
from matplotlib import pyplot


# 创建画布
pyplot.figure()

#绘图

hight = numpy.array([150,151,156,159,167,165,169,175,174,178,180,182,183,184,159,168])

# bins = 4  让系统默认进行分组
# 可以自定义进行分组--等宽分组
# 计算最大值与最小值差值---极差

ptp = hight.max()-hight.min()

# 计算步长,并向上去整
step = numpy.ceil(ptp/4)
# 设置'等宽'bins
bins = numpy.arange(hight.min(),hight.max()+step,step)

pyplot.hist(hight,bins=bins,color='r',edgecolor='#00ccff')

#设置x刻度
pyplot.xticks(bins)

#增加网格曲线
pyplot.grid(True,axis='y',alpha=0.3)

pyplot.show()

柱状图

matplotlib数据可视化 — 初级图形绘制_第7张图片

import numpy
from matplotlib import pyplot

"""
直方图 与柱状图 区别
直方图:---数据的分布情况,横轴是数据范围,纵轴是落在范围内的频数,适用于大数据
柱状图:---统计类别数据的数量,横轴是数据的类别,纵轴是类别的频数,适用于少量数据,而且类别不宜过多
"""

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

# 创建画布
pyplot.figure()

# 默认不支持中文,需要配置RC 参数
pyplot.rcParams['font.sans-serif']='SimHei'
# 设置字体之后不支持负号,需要去设置RC参数更改编码
pyplot.rcParams['axes.unicode_minus']=False

# 绘图
x = numpy.arange(1,4)
y = values[0,3:6]

# 参数 x    类别数的标号
# 参数y   各个类别所对应的类别的数量
# width 是代表类别之间间距的百分之多少
# color 代表柱子的颜色,可以传带个字符串,也可以传一个列表

pyplot.bar(x,y,width=0.8,color=['r','b','#00ffcc'])

#设置刻度
pyplot.xticks(x,['A','B','C'])

# 标注
for i,j in zip(x,y):
    print(i,j)
    #i, j + 100 文本放位置置的
    pyplot.text(i, j+100, "%.2f亿元"%j, horizontalalignment='center')

pyplot.show()

散点图
matplotlib数据可视化 — 初级图形绘制_第8张图片

import numpy
import random
from matplotlib import pyplot

# 创建画布
pyplot.figure()

# 绘图

# 构建 x 与 y 坐标
x = numpy.arange(1,6)

y = numpy.random.randn(5)

# 绘制散点图---比折线图严格,x,y维数必须一致
# s  点的大小,可以传一个,也可以传一个数组,会从前往后依次使用大小
# c  点的颜色 ,可以传一个,也可以传一个array,会从前往后依次使用大小
# marker  点的形状---,只能传一个字符串"*"
# alpha  --透明度


pyplot.scatter(x,y,s=[20,30,40,50,60,70],c=['r','g','pink','y','r'],marker='*',alpha=1)


pyplot.show()

饼图
matplotlib数据可视化 — 初级图形绘制_第9张图片

import numpy
from matplotlib import pyplot

# 场景:
# 部分与整体的关系
# 部分与部分的关系
# 部分不能太多,部分不能太多

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


# 创建画布
pyplot.figure()

# 默认不支持中文,需要配置RC 参数
pyplot.rcParams['font.sans-serif']='SimHei'
# 设置字体之后不支持负号,需要去设置RC参数更改编码
pyplot.rcParams['axes.unicode_minus']=False


# 2、绘图
#  x  绘制饼图的真实数据
# explode  部分距离饼心的距离,即缝隙
# labels 饼图各部分的名称
# labeldistance  -名称距离圆心的距离远近
# color -饼图各部分的颜色,可以是一个,也可以传一个数组
# autopct ---占比的显示 以%.2f%%形式设置
#  pctdistance ---显示的占比数据距离圆心的远近
# radius 饼的半径
# shadow  设置阴影

# 设置数据【最后一行的3,4,5列】
x = values[-1,3:6]

# 设置缝隙----长度必须和x一致
explode = (0.01,0.01,0.01)

# 设置label
labels = [i[:4] for i in columns[3:6]]

#设置颜色
color = ['r','g','y']

#设置显示位数 %%【防止%转义】
autopct = '%.2f%%'

pyplot.pie(x,explode=explode,labels=labels,colors=color,autopct=autopct,shadow=True)

# 将饼子捏圆
pyplot.axis('equal')

pyplot.show()

你可能感兴趣的:(数据分析)