Matplotlib数据可视化基础

Matplotlib数据可视化基础

Matplotlib入门

简单图形绘制

import matplotlib.pyplot as plt


plt.plot([3,1,4,5,2])
plt.ylabel("grade") # y轴标签
plt.savefig("test_1",dpi=600) # 保存图片
plt.show() #显示

""" 
plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成;
plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量。 
"""

Matplotlib数据可视化基础_第1张图片

import matplotlib.pyplot as plt

plt.plot([0,2,4,6,8],[3,1,4,5,2])
plt.ylabel("grade") # y轴标签
plt.axis([0,10,0,6]) # x,y轴范围
plt.savefig("test_2",dpi=600)
plt.show()
'''
plt.plot(x,y)当有两个以上参数时,按照X轴和Y轴顺序绘制数据点;
可使用numpy的数组给x赋值,用数组为参数的函数为y赋值
'''

Matplotlib数据可视化基础_第2张图片

import matplotlib.pyplot as plt
import numpy as np


func = np.poly1d(np.array([1,2,3,4]).astype(float))
x = np.linspace(-10,10,30)
y = func(x)
plt.plot(x,y)
plt.ylabel("y(x)") # y轴标签
plt.xlabel("x") # x轴标签
plt.show()

Matplotlib数据可视化基础_第3张图片

基本绘图流程

Matplotlib数据可视化基础_第4张图片
创建画布与创建子图

1.创建画布:构建一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制
figure()函数创建一个全局绘图区域,并成为当前的绘图对象,figsize参数可以指定绘图区域的宽度和高度,单位为英寸。 
2.创建子图:在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域
	主要函数:plt.subplot(nrows, ncols, plot_number)		如:plt.subplot(3,2,4)

添加画布内容

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

plt.title	在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数。
plt.xlabel	在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数。
plt.ylabel	在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数。
plt.xlim	指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。
plt.ylim	指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。
plt.xticks	指定x轴刻度的数目与取值。
plt.yticks	指定y轴刻度的数目与取值。
plt.legend	指定当前图形的图例,可以指定图例的大小、位置、标签。
plt.savefig	保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数。
plt.show	在本机显示图形。

Matplotlib数据可视化基础_第5张图片
Matplotlib数据可视化基础_第6张图片

pyplot的plot函数

格式:plt.plot(x, y, format_string, **kwargs)
参数:
x : X轴数据,列表或数组,可选
y : Y轴数据,列表或数组
format_string: 控制曲线的格式字符串,可选
**kwargs : 第二组或更多(x,y,format_string)
当绘制多条曲线时,各条曲线的x不能省略
import matplotlib.pyplot as plt
import numpy as np

a = np.arange(0,5,0.2)
plt.plot(a,a*1.5,a,a*2,a,a*3.5,a,a*4.5)
plt.show()

Matplotlib数据可视化基础_第7张图片

format_string: 控制曲线的格式字符串,可选
由颜色字符、风格字符和标记字符组成
颜色字符、风格字符和标记字符可以组合使用
**kwargs : 第二组或更多(x,y,format_string)
color : 控制颜色, color=‘green’
linestyle : 线条风格, linestyle=‘dashed’
marker : 标记风格, marker=‘o’
markerfacecolor: 标记颜色, markerfacecolor=‘blue’
markersize : 标记尺寸, markersize=20

Matplotlib数据可视化基础_第8张图片
Matplotlib数据可视化基础_第9张图片
Matplotlib数据可视化基础_第10张图片
pyplot的中文显示

pyplot并不默认支持中文显示,有两种方法 可解决这一问题
方法一:需要rcParams修改字体实现

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

a = np.arange(0, 5, 0.01)
matplotlib.rcParams['font.family'] = 'STsong'
matplotlib.rcParams['font.style'] = 'normal'
matplotlib.rcParams['font.size'] = 12
plt.title('余弦函数$y=cos(2\pi x)$')
plt.xlabel('横轴:时间')
plt.ylabel('纵轴:振幅')
plt.plot(a, np.cos(2 * np.pi * a), 'r--')
plt.show()

Matplotlib数据可视化基础_第11张图片
Matplotlib数据可视化基础_第12张图片
Matplotlib数据可视化基础_第13张图片
方法二:
在有中文输出的地方,增加一个属性:fontproperties

import numpy as np
import matplotlib.pyplot as plt

a = np.arange(0, 5, 0.01)
plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=16)
plt.ylabel('纵轴:振幅', fontproperties='SimHei', fontsize=16)
plt.plot(a, np.cos(2 * np.pi * a), 'r--')
plt.show()

pyplot的文本显示函数
在这里插入图片描述

plt.text(2,1,r'$\mu =200$',fontsize=15) # 在坐标(2,1)上添加\mu =200
plt.annotate(r'$\mu =180$',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='green',shrink=0.1,width=2))

常见图形绘制函数

Matplotlib数据可视化基础_第14张图片
Matplotlib数据可视化基础_第15张图片
Matplotlib数据可视化基础_第16张图片

常见图形绘制

1.散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。
通常用于比较跨类别的数据

matplotlib.pyplot.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.折线图(line chart)是一种将数据点按照顺序连接起来的图形。折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。

plt.plot(x, y, format_string, **kwargs)

3.饼图
饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观

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

Matplotlib数据可视化基础_第17张图片
Matplotlib数据可视化基础_第18张图片

import numpy as np
import matplotlib.pyplot as plt
labels='Frogs','Hogs','Dogs','Logs'
sizes=[35,30,45,10]
explode=(0,0.1,0,0)
plt.pie(sizes,explode=explode,labels=labels,shadow=False,autopct="%1.1f%%",startangle=90)
plt.axis("equal")

plt.show()

Matplotlib数据可视化基础_第19张图片
4.直方图(Histogram)
直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。

pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs )
pyplot.hist(x, bins=None, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, hold=None, data=None, **kwargs)

left	接收array。表示x轴数据。无默认。
height	接收array。表示x轴所代表数据的数量。无默认。
width	接收0-1之间的float。指定直方图宽度。默认为0.8。
color	接收特定string或者包含颜色字符串的array。表示直方图颜色。默认为None。

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

pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None,meanline=None, labels=None, … )

x	接收array。表示用于绘制箱线图的数据。无默认。	positions	接收array。表示图形位置。默认为None。
notch	接收boolean。表示中间箱体是否有缺口。默认为None。	widths	接收scalar或者array。表示每个箱体的宽度。默认为None。
sym	接收特定sting。指定异常点形状。默认为None。	labels	接收array。指定每一个箱线图的标签。默认为None。
vert	接收boolean。表示图形是横向纵向或者横向。默认为None。	meanline	接收boolean。表示是否显示均值线。默认为False。

你可能感兴趣的:(机器学习)