matplotlib 机器学习绘图
安装:pip install matplotlib介绍
Matplotlib 是 Python 中最常用的 2D 绘图库,也可以用来绘制 3D 图形。它提供了一套面向对象(OO)和基于 pyplot 的 MATLAB 风格接口,几乎能画出所有静态、动态、交互式的图表。
matplotlib/
├─ init.py # 顶层命名空间,常用别名 import matplotlib as mpl
├─ pyplot.py # MATLAB 风格接口,最常用 import matplotlib.pyplot as plt
├─ artist.py # 绘图元素基类
├─ axes.py # Axes 对象
├─ figure.py # Figure 对象
├─ axis.py # X/YAxis 对象
├─ backend_*.py # 各后端实现matplotlib.pyplot
最常用的高层接口,直接操作当前 figure/axes,函数式调用。
典型函数:plot、scatter、hist、imshow、subplots、savefig、show 等。
matplotlib.figure
管理整张图(Figure 对象),包含一个或多个 Axes。
matplotlib.axes
真正的“画布”,所有绘图都在 Axes 上完成。
关键方法:plot、bar、pie、contour、pcolormesh、annotate 等。
子模块 matplotlib.axes.Axes 中 >200 个绘图/辅助方法。
函数名称描述Plot折线图或点图Scatter绘制x与y的散点图Bar绘制条形图Barh绘制水平条形图Stem棉签图Boxplot绘制箱型图Hist绘制直方图his2d绘制2D直方图Pie绘制饼状图Step绘制阶梯图Quiver绘制一个二维按箭头Stackplot绘制堆叠图Polar绘制极坐标图折线图
plot() 用于画图它可以绘制点和线,语法格式如下:
# 画单条线
plot(, y, , *, data=None, **kwargs)
# 画多条线
plot(, y, , , y2, , ..., **kwargs)参数说明:
x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。x 轴是可选,不指定则以y轴长度为个数,生成从0开始的整数数组为x轴。
fmt:可选,定义基本格式(如颜色、标记和线条样式)。
**kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。
基础折线图:
import matplotlib.pyplot as plt
x =
y =
plt.plot(x,y)
plt.show()
标签信息:
在画布中添加标签信息:
[*]plt.xlabel(): x轴坐标信息
[*]plt.ylabel(): y轴坐标信息
[*]plt.title(): 顶部标题信息
import matplotlib.pyplot as plt
x =
y =
plt.plot(x,y)
plt.xlabel("x")
plt.ylabel("y")
plt.title("title")
plt.show()
网格:
plt.grid(): 设置画布中显示网格线
import matplotlib.pyplot as plt
x =
y =
plt.plot(x,y)
plt.xlabel("x")
plt.ylabel("y")
plt.title("title")
plt.grid()
plt.show()
点图:
设置fmt参数,绘制点图
import matplotlib.pyplot as plt
x =
y =
plt.plot(x,y, "o")
plt.show()
柱状图
bar() 方法语法格式如下:
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)参数说明:
[*]x:数组,柱形图的 x 轴数据。
[*]height:数组,柱形图的高度。
[*]width:浮点型数组,柱形图的宽度。
[*]bottom:数组,底座的 y 坐标,默认 0。
[*]align:柱形图与 x 坐标的对齐方式
[*]'center' 以 x 位置为中心,这是默认值。
[*]'edge':将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形,可以传递负数的宽度值及 align='edge'。
[*]**kwargs::其他参数。
基础柱状图:
import matplotlib.pyplot as plt
x = ["apple", "banana", "origin", "watermelon"]
y =
plt.bar(x, y)
plt.show()
设置柱状图颜色:
import matplotlib.pyplot as plt
x = ["apple", "banana", "origin", "watermelon"]
y =
plt.bar(x, y, color="blue")
plt.show()
import matplotlib.pyplot as plt
x = ["apple", "banana", "origin", "watermelon"]
y =
plt.bar(x, y, color=["skyblue", "origin", "magenta", "cyan"])
plt.show()
柱状图填充
使用 hatch 参数可以指定柱状图填充形状, 取值包括:'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'
import matplotlib.pyplot as plt
x = ["apple", "banana", "origin", "watermelon"]
y =
plt.bar(x, y, hatch="/")
plt.show()
设置数值
使用 plt.bar_label 函数给柱状图设置数值参数
import matplotlib.pyplot as plt
x = ["apple", "banana", "origin", "watermelon"]
y =
bar = plt.bar(x, y)
plt.bar_label(bar)
plt.show()
柱状对比图:
import matplotlib.pyplot as plt
y_1 =
y_2 =
#2、创建画布
plt.figure(figsize=(20,8))
plt.bar(, y_1, width=0.2, label='before optimize')
plt.bar(, y_2, width=0.2, label='after optimize')
#4、修改X刻度
plt.xticks(, ['MSE', 'RMSE', 'MAE', 'R2'])
plt.legend()
plt.grid(True)
plt.title("model optimize compare")
plt.xlabel("metrics")
plt.ylabel("value")
plt.show()
饼图
pie 是饼图的函数,下面是函数接口:
pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)
[*]x:浮点型数组或列表,用于绘制饼图的数据,表示每个扇形的面积。
[*]labels:列表,各个扇形的标签,默认值为 None。
[*]colors:数组,表示各个扇形的颜色,默认值为 None。
基础饼图:
import matplotlib.pyplot as plt
import numpy as np
x = np.array()
plt.pie(x)
plt.show()
标签和颜色:
labels:设置每一个饼图的标签,和饼图个数不一致会报错
colors:设置每一个饼图的颜色,和饼图个数不一致会报错
x =
label = ['apple', "banana", "orange", "watermelon"]
color=["skyblue", "pink", "teal", "cyan"]
plt.pie(x, labels=label, colors=color)
plt.show()
添加百分比:
autopct: 设置百分比,%0.1f%% 代表小数点后一位的带百分号的百分比
x =
label = ['apple', "banana", "orange", "watermelon"]
color=["skyblue", "pink", "teal", "cyan"]
plt.pie(x, labels=label, colors=color, autopct="%0.1f%%")
plt.show()
棉签图
import numpy as np
pred = np.array()
y_test = np.array()
diff = pred - y_test
plt.stem(list(range(len(diff))), diff, linefmt="-.")
plt.show()
箱线图
boxplot(箱线图,又称为盒须图、盒式图)是在1977年由美国统计学家John Tukey发明,分析数据需要为定量数据。通过箱线图,可以直观的探索数据特征,比如观察数据中是否存在异常数据,离群数据。
箱线图共由五个数值点构成,分别是最小观察值,25%分位数(Q1),中位数,75%分位数(Q3),最大观察值,
[*]最小观察值 = Q1 – 1.5(IQR), IQR = Q3 –Q1
[*]最大观察值 = Q3 + 1.5(IQR), IQR = Q3 –Q1
下图显示了箱型图与正态分布的概率分布函数的比较。
箱线图查看:
下极限(Min):数据集中最小的值。
下四分位数(Q1):数据的第25百分位数。
中位数(Q2):数据的第50百分位数。
上四分位数(Q3):数据的第75百分位数。
上极限(Max):数据集中最大的值。
注意:
上下限:上下限并不是整个数据样本的最大值和最小值,而是
[*]上限 = 去除异常值的最大值(Q3+1.5IQR)
[*]下限 = 去除异常值的最小值(Q1-1.5IQR)
在上下限这里分别划出两条线段作为异常值的分界点。
import numpy as np
arr = np.array()
plt.boxplot(arr)
plt.show()
存在异常值的数据:
import numpy as np
arr = np.array()
plt.boxplot(arr)
plt.show()
箱体填充:
import numpy as np
arr = np.array()
plt.boxplot(arr, patch_artist=True)
plt.show()
中位线样式:
import numpy as np
arr = np.array()
plt.boxplot(arr, patch_artist=True, medianprops={'linestyle': '-', 'color': 'y', 'linewidth': 1.5})
plt.show()
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]