matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图

1.绘制散点图:scatter

scatter函数:
示例:

plt.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)

常用参数及说明:

x,y 	接收array。表示x轴和y轴对应的数据。无默认。

s   	接收数值或者一维的array。指定点的大小,若传入一维array则表示每个点的大小。默 认为None。

c		接收颜色或者一维的array。指定点的颜色,若传入一维array则表示每个点的颜色。默 认为None

marker	接收特定string。表示绘制的点的类型。默认为None。

alpha	接收0-1的小数。表示点的透明度。默认为None。

2.绘制折线图:plot

plot 函数:
示例:

plt.plot(*args, **kwargs)

#plot函数在官方文档的语法中只要求填入不定长参数,
实际可以填入的主要参数主要如下。

参数及说明:

x,y 	接收array。表示x轴和y轴对应的数据。无默认。

color 	接收特定string。指定线条的颜色。默认为None。
 
linestyle 	接收特定string。指定线条类型。默认为“-”。 

marker 	接收特定string。表示绘制的点的类型。默认为None。

alpha 	接收0-1的小数。表示点的透明度。默认为None。

3.绘制直方图:hist

4.绘制柱状图:bar

bar函数:

plt.bar(left,height,width = 0.8,bottom = None,
		hold = None,data = None, ** kwargs )

常用参数说明:

left 	接收array。表示x轴数据。无默认。

height 	接收array。表示x轴所代表数据的数量。无默认。

width 	接收0-1之间的float。指定直方图宽度。默认为0.8。

color 	接收特定string或者包含颜色字符串的array。表示直方图颜色。默认为None。

5.绘制饼图:pie

pie函数:

plt.pie(x, explode=None, labels=None, colors=None, 
		autopct=None, pctdistance=0.6, shadow=False, 
		labeldistance=1.1, startangle=None, radius=None, … )

参数说明:

x 	无接收array。表示用于绘制撇的数据。无默认。

autopct	接收特定string。指定数值的显示方式。默 认为None。

explode 接收array。表示指定项离饼图圆心为n个半径。默认为None

labels 	接收array。指定每一项的名称。默认为None

color 	接收特定string或者包含颜色字符串的array。表示饼图颜色。默认为None。

pctdistance	接收float。指定每一项的比例和距离饼图 圆心n个半径。默认为0.6。

labeldistance	接收float。指定每一项的名称和距离饼图 圆心多少个半径。默认为1.1。

radius	接收float。表示饼图的半径。默认为1。

6.绘制箱线图:boxplot

箱线图(boxplot)也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散 情况的关键信息,尤其在比较不同特征时,更 可表现其分散程度差异。

箱线图利用数据中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来 描述数据,它也可以粗略地看出数据是否具有 对称性、分布的分散程度等信息,特别可以用 于对几个样本的比较。

matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图_第1张图片

7.相关实例代码

实例1:散点图基础

import matplotlib.pyplot as plt

# 1、创建画布
plt.figure()
# 2、绘图
#准备点的坐标(x,y)
x = [1,2,3]

y = [6,8,3]

#绘制散点图
# s 代表点的大小,传一个代表这一组点都是一样的大小
# 传一个数组,数组对应的值就是对应点的大小
# c 代表颜色,传一个代表这组点都是一种颜色,
# 传一个数组,数组对应的值就是对应点的颜色
# alpha  透明度
plt.scatter(x,y,s=[12,80,120],marker="*",c=['r','g','y'],alpha=0.8)
# 3、展示
plt.show()

# 1、符合顺序的那种散点图,可以用来观察发展趋势
# 2、聚合的散点图,是用来观察样本、特征之间的相关联系

实例1结果:
matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图_第2张图片
实例2:各产业、行业总值散点图:

import  matplotlib.pyplot as plt
import  numpy as np

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

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

print(columns)
print(values)

#创建画布
fig = plt.figure(figsize=(20,10))
# 默认不支持中文,需要配置RC参数
plt.rcParams['font.sans-serif']='SimHei'
# 默认不支持负号,需要配置RC参数
plt.rcParams['axes.unicode_minus']=False

# 绘图
fig.add_subplot(2,1,1)
# 准备xy 数据
x = values[:,0]

y1 = values[:,3]
y2 = values[:,4]
y3 = values[:,5]

plt.scatter(x,y1)
plt.scatter(x,y2)
plt.scatter(x,y3)

# 增加标题
plt.title("2000-2017年各产业季度生产总值散点图")
#增加轴名称
plt.ylabel("生产总值(亿元)")

# 增加x刻度
# plt.xticks(x[::4],values[:,1][::4],rotation=45,horizontalalignment='right')
plt.xticks(x[::4],np.arange(1,values.shape[0]+1)[::4])
# plt.text()

# 增加图例
plt.legend([tmp[:4] for tmp in columns[3:6]])

fig.add_subplot(2,1,2)
# 准备xy 数据 x--序号 y  各个行业生产总值
x = values[:,0]

# y = values[:,6:] 不可以这么绘制,必须一列一列一一绘制
# plt.scatter(x,y)
# #
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]

plt.scatter(x,y1)
plt.scatter(x,y2)
plt.scatter(x,y3)
plt.scatter(x,y4)
plt.scatter(x,y5)
plt.scatter(x,y6)
plt.scatter(x,y7)
plt.scatter(x,y8)
plt.scatter(x,y9)

# 增加轴名称
plt.ylabel("生产总值(亿元)")

# 增加x刻度
plt.xticks(x[::4],values[:,1][::4],rotation=45,horizontalalignment='right')

# plt.text()

# 增加图例 fontsize 大小
plt.legend([tmp[:2] for tmp in columns[6:]],fontsize=8,loc=2)


#保存图片
plt.savefig("./2000-2017年各产业、行业季度生产总值散点图.png")
# 展示
plt.show()

实例2结果:
matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图_第3张图片
示例3:柱状图


#柱状图---有限类别数量的柱子 ---少量数据---对比类别数据差距
#直方图 -- 各个区间内数量的柱子---大量数据---数据的分布规律

# 导包
import  matplotlib.pyplot as plt

# 1、创建画布
plt.figure()
# 默认不支持中文,需要配置RC参数
plt.rcParams['font.sans-serif']='SimHei'
# 默认不支持负号,需要配置RC参数
plt.rcParams['axes.unicode_minus']=False

# 2、绘图
# 模拟 学校里面爱好乒乓球、篮球、羽毛球的人数对比
x =[1,2,3]

y =[120,234,320]

# height 柱子高度,具体的数值
# width 柱子的宽度
# x 类别序号
plt.bar(x,height=y,width=0.5,color=['r','g','y'])
# 增加标题
plt.title("各球类运动爱好者柱状图")

# 修改刻度
plt.xticks(x,["乒乓球","篮球","羽毛球"])

# 标注
for i,j in zip(x,y):
    plt.text(i,j+3,"%d人"%j,horizontalalignment='center')

# 增加轴名称
plt.xlabel("球类运动")
plt.ylabel("人数")

# 保存图片
plt.savefig("各球类运动爱好者柱状图.png")
# 3、展示
plt.show()

示例3结果:
matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图_第4张图片

示例4:直方图:

import  matplotlib.pyplot as plt
import  numpy as np

# 1、创建画布
plt.figure()
# 默认不支持中文,需要配置RC参数
plt.rcParams['font.sans-serif']='SimHei'
# 默认不支持负号,需要配置RC参数
plt.rcParams['axes.unicode_minus']=False
# 2、绘图
#身高案例:
#
height = np.array([150,156,167,168,166,172,170,184,189,192,164,173,172,178,177])

# 自定义分组---等宽分组
bins = np.arange(height.min(),height.max()+5,5)

# print(bins)

# 绘制直方图
plt.hist(height,bins=bins,edgecolor='r',color='g')

#修改刻度u
plt.xticks(bins)

# 增加网格曲线
plt.grid(b=True,axis='y')

# 增加轴名称
plt.xlabel("身高")
plt.ylabel("人数")
# 增加标题
plt.title("学生身高统计直方图")

# 保存图片
plt.savefig("./学生身高统计直方图.png")

# 3、展示
plt.show()


示例4结果:
matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图_第5张图片
示例5:饼图

import  matplotlib.pyplot as plt
import  numpy as  np

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

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

print(columns)
print(values)

# #1、创建画布
plt.figure()
# 默认不支持中文,需要配置RC参数
plt.rcParams['font.sans-serif']='SimHei'
# 默认不支持负号,需要配置RC参数
plt.rcParams['axes.unicode_minus']=False


# # 2、绘图
# # 2017第一季度  这一行所对应的 一、二、三产业 总值具体的值
#准备数据
x = values[-1,3:6]
# 设置缝隙--距离圆心的半径
# explode=(0.01,0.02,0.03)
# 设置标签
labels=[tmp[:4] for tmp in columns[3:6]]
# 设置颜色
colors= ['r','g','y']
# shadow ---阴影
# 绘图
plt.pie(x,labels=labels,colors=colors,autopct='%.2f%%',shadow=True)

# 将椭圆变为圆形
plt.axis('equal')

# 增加标题
plt.title("2017年第一季度各个产业生产总值饼图")

# 设置图例
plt.legend(labels)

# 保存图片
plt.savefig("./2017年第一季度各个产业生产总值饼图.png")
# # 3、展示
plt.show()

示例5结果:
matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图_第6张图片
示例6:箱线图:

import  matplotlib.pyplot as plt
import  numpy as np

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

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

print(columns)
print(values)

# 绘图

# 1、创建画布
plt.figure()
# 默认不支持中文,需要配置RC参数
plt.rcParams['font.sans-serif']='SimHei'
# 默认不支持负号,需要配置RC参数
plt.rcParams['axes.unicode_minus']=False

# 2、绘图
# 准备数据--第一产业的值

x = (values[:,3],values[:,4],values[:,5]) #此方法不行时,使用下一行方法
# x = list([list(values[:,3]),list(values[:,4]),list(values[:,5])])

#绘图
# notch 是否缺口
labels= [tmp[:4] for tmp in columns[3:6]]
plt.boxplot(x,notch=True,meanline=True,showmeans=True)

# 3、展示
plt.show()


结果为:
matplotlib数据可视化之绘制散点图、折线图、直方图、柱状图、饼图、箱线图_第7张图片

你可能感兴趣的:(学习笔记)