目录
一、什么是matplotlib库
二、基本用法
1、绘制简单的线图
plot()函数:
2、绘制散点图
scatter()函数:
3、绘制条形图
bar()函数:
4、绘制饼图
pie()函数:
三、重要用法
1、设置样式
2、添加标签
3、设置坐标轴范围
4、绘制多个图表
5、绘制3D图表
四、注意点
五、在机器学习中的应用
样例:
1、绘制线条
2、绘制散点图
3、绘制直方图
matplotlib
是一个用于绘制各种类型图表的Python绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。它支持各种不同的图表类型,包括线图、散点图、条形图、饼图等。
Matplotlib模块中最常用的是pyplot子模块,其中包含我们需要的诸多功能函数,因此在开始使用前,我们依旧约定,将matplotlib库的pyplot子库写法做如下简化:
import matplotlib.pyplot as plt
绘制曲线可用函数。绘制过程需在画布上进行,如果没事先显式创造画布对象,则plot会在绘制前隐式地创建一个画布
基本格式为:plt.plot(x, y, format_string, **kwargs)
其中:x、y为所对应轴的数据,是列表或数组;format_string为控制曲线的格式字符串(可选);参数四则表示第二组或更多组(x, y, format_string)数据
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
# 绘制图表
plt.plot(x, y)
# 显示图表
plt.show()
输出结果:
散点图的绘制工具,基本格式为:plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,vmin=None, vmax=None, alpha=None, linewidths=None,verts=None, edgecolors=None, hold=None, data=None,**kwargs)
其中:
x,y:输入数据,形状为 shape(n,))的数组。
c:标记的颜色,可选,默认为'b'即蓝色。
marker:标记的样式,默认为'o'。
alpha:透明度,实数,0~1。
linewidths:标记点的宽度。
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
# 绘制图表
plt.scatter(x, y)
# 显示图表
plt.show()
输出结果:
绘制条形图的工具,基本格式为:bar(x,height, width=0.8,bottom=None,hold=None,data=None,**kwargs)
其中:
x:x轴刻度,为数值序列或字符串序列
height:y轴,展示的数据→柱形图高度
import matplotlib.pyplot as plt
# 创建数据
labels = ['A', 'B', 'C', 'D']
values = [1, 4, 9, 16]
# 绘制图表
plt.bar(labels, values)
# 显示图表
plt.show()
输出结果:
饼图绘制工具,基本格式为:plt.pie(values, labels=labels, colors=colors, explode=explode, autopct=autopct, shadow=shadow)
其中:
values:表示饼图的数值,可以是一个序列或者列表;
labels:表示饼图各部分的标签,可以是一个序列或者列表;
colors:表示饼图各部分的颜色,可以是一个序列或者列表;
explode:表示饼图各部分与中心的距离,可以是一个序列或者列表;
autopct:表示饼图各部分所占比例的显示方式;
shadow:表示是否给饼图添加阴影。
注意:values参数是必须要指定的,而其他参数都是可选的。同时,labels、colors、explode、autopct这些参数的长度必须与values的长度相同。
import matplotlib.pyplot as plt
# 创建数据
labels = ['A', 'B', 'C', 'D']
values = [1, 4, 9, 16]
# 绘制图表
plt.pie(values, labels=labels)
# 显示图表
plt.show()
输出结果:
除了基本用法,matplotlib
还有许多重要的用法,例如设置图表的样式、添加标签、设置坐标轴范围等
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
# 设置样式
plt.style.use('ggplot')
# 绘制图表
plt.plot(x, y)
# 显示图表
plt.show()
效果如下:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
# 绘制图表
plt.plot(x, y)
# 添加标签
plt.title('Square Numbers')
plt.xlabel('Value')
plt.ylabel('Square of Value')
# 显示图表
plt.show()
效果如下:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
# 绘制图表
plt.plot(x, y)
# 设置坐标轴范围
plt.xlim(0, 5)
plt.ylim(0, 20)
# 显示图表
plt.show()
效果如下:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4]
y1 = [1, 4, 9, 16]
y2 = [1, 2, 3, 4]
# 绘制图表
plt.subplot(2, 1, 1)
plt.plot(x, y1)
plt.title('Subplots Example')
plt.ylabel('Square of Value')
plt.subplot(2, 1, 2)
plt.plot(x, y2)
plt.xlabel('Value')
plt.ylabel('Value')
# 显示图表
plt.show()
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
import numpy as np
# 创建数据
fig = plt.figure()
ax = plt.axes(projection='3d')
z = np.linspace(0, 1, 100)
x = z * np.sin(25 * z)
y = z * np.cos(25 * z)
# 绘制图表
ax.plot3D(x, y, z, 'gray')
ax.set_title('3D Line Plot')
# 显示图表
plt.show()
效果如下:
在使用matplotlib
库时,有一些要注意的点:
plt.show()
命令显示图表。在交互模式下,图表会自动显示,但在脚本模式下,需要使用plt.show()
命令显示图表。如果没有显示图表,可以尝试添加plt.show()
命令。plt.plot()
绘制线条时,可以设置颜色、线型、标记等属性。例如,plt.plot(x, y, 'ro-')
表示绘制红色圆圈标记的线条。plt.xlabel()
和plt.ylabel()
设置坐标轴标签,使用plt.title()
设置图表标题。plt.xlim()
和plt.ylim()
设置坐标轴范围,使用plt.xticks()
和plt.yticks()
设置坐标轴刻度。plt.legend()
添加图例,可以在图表中显示每个线条的标签。matplotlib
库在机器学习中的应用非常广泛,主要是用于数据可视化和结果分析,常见的应用场景包括:
数据可视化:在机器学习中,我们通常需要对数据进行可视化,以便更好地理解数据、发现数据中的规律和趋势、选择合适的特征和算法等。matplotlib
库提供了丰富的绘图函数和工具,可以绘制线条、散点图、直方图、箱线图、热力图等,方便用户进行数据探索和分析。
模型性能评估:在机器学习中,我们需要对模型的性能进行评估,例如计算准确率、召回率、F1值等指标。matplotlib
库提供了绘制ROC曲线、学习曲线、验证曲线等函数,可以直观地展示模型的性能,帮助用户进行结果分析和模型选择。
结果可视化:在机器学习中,我们需要将模型训练的结果进行可视化,例如绘制分类决策边界、预测结果等。matplotlib
库提供了绘制等高线图、3D图、动态图等函数,可以展示模型的决策边界、分类效果等,方便用户进行结果可视化和模型调整。
总的来说,matplotlib
库是机器学习中不可或缺的数据可视化工具,可以帮助用户更好地理解数据和模型,进行结果分析和模型选择。
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制线条
plt.plot(x, y)
# 设置标题和坐标轴标签
plt.title('Sin Function')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
效果如下:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
# 绘制散点图
plt.scatter(x, y, c=colors)
# 设置标题和坐标轴标签
plt.title('Random Data')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
效果如下:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=30)
# 设置标题和坐标轴标签
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图表
plt.show()
效果如下: