Matplotlib学习日志

Matplotlib 是一个功能强大的数据可视化库,广泛应用于各种领域。

一、Matplotlib 简介

Matplotlib 是一款用于数据可视化的 Python 软件包,能够根据 NumPy ndarray 数组绘制 2D 图像。它支持跨平台运行,使用简单,代码清晰易懂。Matplotlib 的图形由 Figure(整个图形)、Axes(绘图区域)、Axis(坐标轴)和 Artist(图形元素)等组成。此外,还有多个功能扩展包,如 Basemap、Cartopy、Excel tools 等,进一步增强了其绘图能力。

二、安装 Matplotlib

安装 Matplotlib 非常简单,可以使用 pip 命令进行安装:

bash复制

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/

三、Matplotlib 的应用场景

Matplotlib 在数据可视化方面有广泛的应用场景,包括但不限于:

  • 企业领域:通过直观多样的图表展示数据,为企业决策提供支持。

  • 股票走势预测:分析股票涨跌数据,为股民提供合理化建议。

  • 商超产品销售:分析客户群体和购买产品,制定更好的销售策略。

  • 预测销量:分析产品销量的影响因素,预测销量走势。

四、常用 API

Matplotlib 提供了丰富的 API,用于绘制各种类型的图表和操作图形元素。

4.1 绘图类型
函数名称描述
Bar绘制条形图
Barh绘制水平条形图
Boxplot绘制箱型图
Hist绘制直方图
Pie绘制饼状图
Plot在坐标轴上画线或标记
Polar绘制极坐标图
Scatter绘制散点图
Stackplot绘制堆叠图
Stem绘制二维离散数据图
Step绘制阶梯图
Quiver绘制二维箭头图
4.2 Image 函数
函数名称描述
Imread从文件中读取图像数据并形成数组
Imsave将数组另存为图像文件
Imshow在数轴区域内显示图像
4.3 Axis 函数
函数名称描述
Axes在画布中添加轴
Text向轴添加文本
Title设置当前轴的标题
Xlabel设置 x 轴标签
Xlim获取或设置 x 轴区间大小
Xscale设置 x 轴缩放比例
Xticks获取或设置 x 轴刻度和标签
Ylabel设置 y 轴标签
Ylim获取或设置 y 轴区间大小
Yscale设置 y 轴缩放比例
Yticks获取或设置 y 轴刻度和标签
4.4 Figure 函数
函数名称描述
Figtext在画布上添加文本
Figure创建一个新画布
Show显示图形
Savefig保存当前画布
Close关闭画布窗口

五、pylab 模块

PyLab 是 Matplotlib 的一个绘图库接口,语法与 MATLAB 相近。它将 matplotlib.pyplot 和 numpy 的功能组合在一起,方便快速绘图和数值计算。然而,使用 pylab 可能会导致命名空间污染,不适合大型项目。相比之下,pyplot 提供了更底层的接口,更具灵活性。

六、常用函数

6.1 plot 函数

pylab.plot 用于绘制二维图形,根据 x 和 y 数据点绘制线条和/或标记。它接受多个参数,包括格式字符串,用于指定线条样式、颜色等。

案例

Python复制

import pylab
x = pylab.linspace(-6, 6, 40)
y = x**2
pylab.plot(x, y, 'r:')
pylab.show()
6.2 figure 函数

figure() 函数用于创建一个新的图形对象,可以设置图形的大小、分辨率、背景颜色等。

案例

Python复制

fig = pylab.figure(figsize=(10, 6), dpi=80)
6.3 subplot 函数

subplot 用于创建子图,参数为一个三位数的整数,表示子图的行数、列数和索引。

案例

Python复制

fig, axs = pylab.subplots(2, 2)
6.4 subplots 函数

subplots 创建一个包含多个子图的图形窗口,返回一个包含所有子图的数组。

案例

Python复制

fig, axs = pylab.subplots(2, 2, figsize=(10, 6))
6.5 subplot2grid 函数

subplot2grid 在网格中创建子图,允许更灵活地指定子图的位置和大小。

案例

Python复制

ax = pylab.subplot2grid((3, 3), (0, 0), colspan=2)
6.6 grid 函数

grid 用于在图形中添加网格线,帮助读者更清晰地理解数据分布和趋势。

案例

Python复制

ax.grid(True, axis='x', color='red', linestyle='--', linewidth=0.5)
6.7 xscale 和 yscale 函数

xscaleyscale 用于设置坐标轴的刻度类型,如线性刻度、对数刻度等。

案例

Python复制

ax.set_yscale('log')
6.8 set_xlim 和 set_ylim 函数

set_xlimset_ylim 用于设置坐标轴的范围。

案例

Python复制

ax.set_xlim(0, 2 * math.pi)
ax.set_ylim(-1.5, 1.5)
6.9 set_xticks 和 set_yticks 函数

set_xticksset_yticks 用于手动指定坐标轴的刻度位置。

案例

Python复制

ax.set_xticks([0, 2, 4, 6, 8, 10])
ax.set_yticks([-1, -0.5, 0, 0.5, 1])
6.10 twinx 和 twiny 函数

twinxtwiny 用于创建共享 X 轴或 Y 轴的多个子图。

案例

Python复制

ax2 = ax.twinx()
6.11 柱状图

柱状图用于展示分类数据的分布情况。

案例

Python复制

categories = ['A', 'B', 'C', 'D']
values = [20, 35, 30, 25]
ax.bar(categories, values, color='skyblue', linewidth=1.5, width=0.6)
6.12 直方图

直方图用于展示数值数据的分布情况。

案例

Python复制

data = np.random.randn(1000)
ax.hist(data, bins=30, color='skyblue', edgecolor='black')
6.13 饼图

饼图用于展示分类数据的占比情况。

案例

Python复制

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
6.14 折线图

折线图用于展示数据的变化趋势。

案例

Python复制

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
ax.plot(x, y1, label='sin(x)', color='blue')
ax.plot(x, y2, label='cos(x)', color='red')
6.15 散点图

散点图用于展示两个变量之间的关系。

案例

Python复制

x = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
y0 = [120, 132, 101, 134, 90, 230, 210]
y1 = [220, 182, 191, 234, 290, 330, 310]
ax.scatter(x, y0, color='red')
ax.scatter(x, y1, color='blue')
6.16 图片读取

plt.imread 用于读取图像文件并将其转换为 NumPy 数组。

案例

Python复制

img = plt.imread('leaf.png')
plt.imshow(img)
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值