Python----Matplotlib数据可视化
一、相关API
import matplotlib.pyplot as plt
import numpy as np
1、标签和图例
1.1、plt.title()
在当前图像中添加标题,可以设置标题的名称,字体,颜色,位置等参数
1.2、plt.xlabel()
在当前图像中添加x轴标签,可以设置字体,颜色,位置等参数
1.3、plt.ylabel()
在当前图像中添加y轴标签,可以设置字体,颜色,位置等参数
1.4、plt.xlim()
在当前图像中指定x轴的范围,传入一个数值区间
1.5、plt.ylim()
在当前图像中指定y轴的范围,传入一个数值区间
1.6、plt.xticks()
在当前图像中设置x轴的刻度
1.7、plt.yticks()
在当前图像中设置y轴的刻度
1.8、plt.legend()
在当前图像中设置图例,可以设置位置,大小,标签等
2、绘图
2.1、plt.scatter()----散点图
散点图(Scatter Diagram)又称为散点分布图,是以一个特征为横坐标,以另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。值由点在图表中的位置表示,类别由图表中的不同标记表示,通常用于比较跨类别的数据。
API声明如下:
def scatter(
x: float | ArrayLike,
y: float | ArrayLike,
s: float | ArrayLike | None = None,
c: ArrayLike | Sequence[ColorType] | ColorType | None = None,
marker: MarkerType | None = None,
cmap: str | Colormap | None = None,
norm: str | Normalize | None = None,
vmin: float | None = None,
vmax: float | None = None,
alpha: float | None = None,
linewidths: float | Sequence[float] | None = None,
*,
edgecolors: Literal["face", "none"] | ColorType | Sequence[ColorType] | None = None,
plotnonfinite: bool = False,
data=None,
**kwargs,
)
常用参数及其说明:
x:x轴对应的数据
y:y轴对应的数据
s:传入固定数值或者一维数组,传入固定数值,则表示点的大小固定,传入一维数组,则表示每个点的大小
c:传入固定数值或者一维数组,传入固定数值,则表示点的颜色固定,传入一维数组,则表示每个点的颜色
marker:绘制的点的类型
alpha:表示点的透明程度
2.2、plt.plot()----折线图
折线图(LineChart)是一种将数据点按照顺序连接起来的图形。可以看作是将散点图按照x轴坐标顺序连接起来的图形。折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。
API声明如下:
def plot(
*args: float | ArrayLike | str,
scalex: bool = True,
scaley: bool = True,
data=None,
**kwargs,
)
x:x轴对应的数据
y:y轴对应的数据
color:线条的颜色
linestyle:线条类型
marker:绘制的点的类型
alpha:表示点的透明程度
2.3、plt.bar()----直方图
直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,用纵轴表示数量或者占比。用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。
API声明如下:
def bar(
x: float | ArrayLike,
height: float | ArrayLike,
width: float | ArrayLike = 0.8,
bottom: float | ArrayLike | None = None,
*,
align: Literal["center", "edge"] = "center",
data=None,
**kwargs,
)
x:表示X轴的数据
height:表示X轴所代表数据的数量
width:表示直方图的宽度
color:表示直方图的颜色
2.4、plt.pie()----饼图
饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显示方式直观。
def pie(
x: ArrayLike,
explode: ArrayLike | None = None,
labels: Sequence[str] | None = None,
colors: ColorType | Sequence[ColorType] | None = None,
autopct: str | Callable[[float], str] | None = None,
pctdistance: float = 0.6,
shadow: bool = False,
labeldistance: float | None = 1.1,
startangle: float = 0,
radius: float = 1,
counterclock: bool = True,
wedgeprops: dict[str, Any] | None = None,
textprops: dict[str, Any] | None = None,
center: tuple[float, float] = (0, 0),
frame: bool = False,
rotatelabels: bool = False,
*,
normalize: bool = True,
hatch: str | Sequence[str] | None = None,
data=None,
)
x:表示绘制饼图的数据
explode:表示指定项距离饼图圆心的半径
labels:表示每一项的名称
colors:表示饼图的颜色
autopct:表示数值的显示方式
pctdistance:表示每一项的比例距离圆心的半径
labeldistance:表示每一项的名称距离圆心的半径
radius:表示饼图的半径
2.5、plt.boxplot()----箱线图
箱线图利用数据中的5个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据。它也可以粗略地看出数据是否具有对称性、分布的分散程度等信息,特别是可以用于对几个样本的比较。
def boxplot(
x: ArrayLike | Sequence[ArrayLike],
notch: bool | None = None,
sym: str | None = None,
vert: bool | None = None,
whis: float | tuple[float, float] | None = None,
positions: ArrayLike | None = None,
widths: float | ArrayLike | None = None,
patch_artist: bool | None = None,
bootstrap: int | None = None,
usermedians: ArrayLike | None = None,
conf_intervals: ArrayLike | None = None,
meanline: bool | None = None,
showmeans: bool | None = None,
showcaps: bool | None = None,
showbox: bool | None = None,
showfliers: bool | None = None,
boxprops: dict[str, Any] | None = None,
tick_labels: Sequence[str] | None = None,
flierprops: dict[str, Any] | None = None,
medianprops: dict[str, Any] | None = None,
meanprops: dict[str, Any] | None = None,
capprops: dict[str, Any] | None = None,
whiskerprops: dict[str, Any] | None = None,
manage_ticks: bool = True,
autorange: bool = False,
zorder: float | None = None,
capwidths: float | ArrayLike | None = None,
label: Sequence[str] | None = None,
*,
data=None,
)
x:表示用于绘制箱线图的数据
notch:表示箱体中间是否有缺口
sym:表示异点的形状
vert:表示图形是纵向还是横向
positions:表示图形的位置
width:表示每个箱体的宽度
labels:表示每一个箱线图的标签
meanline:表示是否显示均值线
二、实例
1、散点图
2、折线图
3、直方图
4、饼图