【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?

这篇具有很好参考价值的文章主要介绍了【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?

【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?,Matplotlib之旅:零基础精通数据可视化,python,matplotlib,新手入门,学习

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)


📊 一、fig和ax简介

  在Matplotlib库中,fig, ax = plt.subplots() 是一个常用的函数,用于创建一个新的图形窗口以及一个或多个子图。返回的 figax 对象分别代表了整个图形和其中的一个子图。figFigure 类的实例,代表整个绘图窗口,而 axAxes 类的实例,代表其中的一个子图或坐标轴。

  通过 figax,我们可以方便地对整个图形和子图进行各种操作,比如设置标题、坐标轴标签、刻度等。

🖼️ 二、fig的用法

fig 对象提供了许多方法和属性,用于控制整个图形的外观和行为。以下是一些常用的用法:

设置图形大小

可以通过 figsize 参数在创建图形时设置其大小(宽和高,单位为英寸)。

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(8, 6))

设置图形标题

使用 suptitle() 方法可以为整个图形设置标题。

fig.suptitle('My Title', fontsize=14)

保存图形

使用 savefig() 方法可以将整个图形保存为图片文件。

fig.savefig('my_figure.png')

显示图形

通过 plt.show() 可以显示整个图形。

plt.show()

📈 三、ax的用法

ax 对象代表了图形中的一个子图,它提供了丰富的接口用于绘制图形和设置坐标轴属性。

绘制图形

使用 ax 对象的方法可以直接在子图上绘制各种图形,如折线图、散点图等。

import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)

设置坐标轴标签和刻度

使用 set_xlabel(), set_ylabel(), set_xticks(), set_yticks() 等方法可以设置坐标轴的标签和刻度。

ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_xticks(np.arange(0, 11, 2))
ax.set_yticks([-1, 0, 1])

设置坐标轴范围

使用 set_xlim()set_ylim() 方法可以设置坐标轴的范围。

ax.set_xlim(0, 10)
ax.set_ylim(-1.5, 1.5)

添加图例

如果在一个子图上绘制了多个图形,可以使用 legend() 方法添加图例。

ax.plot(x, np.sin(x), label='sin(x)')
ax.plot(x, np.cos(x), label='cos(x)')
ax.legend()

完整代码

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)

ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_xticks(np.arange(0, 11, 2))
ax.set_yticks([-1, 0, 1])

ax.set_xlim(0, 10)
ax.set_ylim(-1.5, 1.5)

ax.plot(x, np.sin(x), label='sin(x)')
ax.plot(x, np.cos(x), label='cos(x)')
ax.legend()

plt.show()

🎨 四、多个子图

  plt.subplots() 函数还可以用于创建包含多个子图的图形。通过指定 nrowsncols 参数,可以定义子图的行数和列数。

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)


fig, axs = plt.subplots(nrows=2, ncols=2)

# axs 是一个 2x2 的数组,每个元素都是一个 Axes 对象
axs[0, 0].plot(x, np.sin(x))
axs[0, 1].plot(x, np.cos(x))
axs[1, 0].plot(x, np.tan(x))
axs[1, 1].plot(x, 1/x)

plt.show()

在这个例子中,axs 是一个 2x2 的 NumPy 数组,每个元素都是一个 Axes 对象,代表图形中的一个子图。我们可以通过索引 axs[i, j] 来访问和操作特定的子图。

🔍 五、fig和ax的交互

  figax 对象之间也有一些交互。例如,我们可以通过 fig.add_axes() 方法手动向图形中添加一个 Axes 对象,或者通过 ax.figure 属性获取一个 Axes 对象所属的 Figure 对象。
下面,我们将深入探讨 figax 之间的交互,并通过示例代码展示如何使用它们来创建更复杂的图形布局和交互。

使用 fig.add_axes() 添加 Axes 对象

  虽然 plt.subplots() 是一种非常方便的创建子图的方法,但有时我们可能需要更灵活地控制子图的位置和大小。这时,可以使用 fig.add_axes() 方法来手动添加 Axes 对象。

import matplotlib.pyplot as plt

# 创建一个图形对象
fig = plt.figure()

# 使用 add_axes() 方法添加 Axes 对象
# 参数是一个四元组,表示子图在图形中的位置(左下角 x, 左下角 y, 宽度, 高度)
# 这些值都是相对于图形大小的分数
ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])

# 在第一个 Axes 对象上绘制图形
ax1.plot([1, 2, 3, 4], [1, 4, 2, 3])

# 还可以继续添加更多的 Axes 对象
ax2 = fig.add_axes([0.2, 0.5, 0.4, 0.3])
ax2.plot([1, 2, 3, 4], [4, 3, 2, 1])

# 显示图形
plt.show()

在上面的代码中,我们手动指定了每个 Axes 对象在图形中的位置和大小。这种方法比 plt.subplots() 更底层,因此提供了更大的灵活性。

使用 ax.figure 获取所属的 Figure 对象

  每个 Axes 对象都有一个 figure 属性,它指向该 Axes 对象所属的 Figure 对象。通过这个属性,我们可以访问和操作整个图形。

import matplotlib.pyplot as plt

# 创建一个图形和一个 Axes 对象
fig, ax = plt.subplots()

# 使用 ax.figure 访问所属的 Figure 对象
print(ax.figure is fig)  # 输出: True

# 也可以通过 ax.figure 来操作整个图形
ax.figure.suptitle('My Title')

# 显示图形
plt.show()

在这个例子中,我们验证了 ax.figure 是否与通过 plt.subplots() 返回的 fig 对象相同,并展示了如何使用 ax.figure 来设置整个图形的标题。

共享坐标轴

  有时,我们可能希望多个子图共享一个或多个坐标轴。Matplotlib 提供了 sharexsharey 参数来实现这一功能。

import matplotlib.pyplot as plt

# 创建两个子图,并共享 x 轴
fig, axs = plt.subplots(nrows=2, sharex=True)

axs[0].plot([1, 2, 3], [1, 2, 3])
axs[1].plot([1, 2, 3], [3, 2, 1])

# 显示图形
plt.show()

在这个例子中,两个子图共享了 x 轴,因此它们的 x 轴刻度和标签是相同的。

  通过了解 figax 之间的交互,我们可以更灵活地控制图形的布局和外观,从而创建出更具吸引力的可视化效果。无论是通过 plt.subplots() 创建子图,还是手动使用 fig.add_axes() 添加子图,我们都能够充分利用 Matplotlib 的强大功能来创建出符合我们需求的图形。

🎭 六、fig和ax的进一步定制

  除了基本的绘图和坐标轴设置,figax 还提供了许多高级功能,允许我们对图形进行更深入的定制。

自定义颜色、线条样式和标记

在绘制图形时,我们可以自定义线条的颜色、样式(实线、虚线等)以及数据点的标记样式。

ax.plot(x, y, color='red', linestyle='--', marker='o')

添加网格、边框和背景色

通过 grid(), spines 属性以及 patch 对象,我们可以为图形添加网格线、控制边框的显示以及设置背景色。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots()

ax.grid(True)  # 显示网格线
ax.spines['top'].set_visible(False)  # 隐藏上边框
ax.spines['right'].set_visible(False)  # 隐藏右边框
fig.patch.set_facecolor('lightgrey')  # 设置背景色为浅灰色

# 显示图形
plt.show()

🤝七、期待与你共同进步

  🌱 亲爱的读者,非常感谢你每一次的停留和阅读!你的支持是我们前行的最大动力!🙏

  🌐 在这茫茫网海中,有你的关注,我们深感荣幸。你的每一次点赞👍、收藏🌟、评论💬和关注💖,都像是明灯一样照亮我们前行的道路,给予我们无比的鼓舞和力量。🌟

  📚 我们会继续努力,为你呈现更多精彩和有深度的内容。同时,我们非常欢迎你在评论区留下你的宝贵意见和建议,让我们共同进步,共同成长!💬

  💪 无论你在编程的道路上遇到什么困难,都希望你能坚持下去,因为每一次的挫折都是通往成功的必经之路。我们期待与你一起书写编程的精彩篇章! 🎉

  🌈 最后,再次感谢你的厚爱与支持!愿你在编程的道路上越走越远,收获满满的成就和喜悦!祝你编程愉快!🎉

🎉 结语

  通过本博客的学习,你应该已经对 figax 的用法有了更深入的了解。Matplotlib 是一个强大而灵活的绘图库,掌握其基本用法和高级定制技巧将为你的数据分析和可视化工作带来极大的便利。不断学习和实践,你将能够创建出更加精美和有效的数据可视化作品。感谢阅读,祝你学习愉快,收获满满!🚀

🔍 关键词

  Matplotlib, fig, ax, subplots, 数据可视化, 图形定制, 坐标轴设置, 文本注释, 箭头, 共享坐标轴, 学习资源, 扩展阅读文章来源地址https://www.toymoban.com/news/detail-840220.html

到了这里,关于【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ax = fig.gca(projection=‘3d‘)报错的解决方法

    最近在学习tensorflow,其中有使用matplotlib画一个3d图像的练习。跑代码时遇到以下问题 TypeError: FigureBase.gca() got an unexpected keyword argument \\\'projection 我发现是Axes3D函数没有用到(图中第5行),通过查询并实验网上的一些解决方法后,现记录一下 解决方法: 实际效果如图所示:

    2024年02月11日
    浏览(41)
  • Python Matplotlib 中如何用 plt.savefig 存储图片

    plt.show()展示图片的时候,截图进行保存,图片不是多么清晰 如何保存高清图也是一知识点 函数包名: import matplotlib.pyplot as plt 主要功能 :保存绘制数据后创建的图形。使用此方法可以将创建的图形保存 函数源码: (根据需要进行选择) 参数解释: 参数 描述 fname 指定格式

    2024年02月01日
    浏览(43)
  • 【Python】【Matplotlib】深入解析plt.grid()---原理、应用与注意事项

    【Python】【Matplotlib】深入解析plt.grid()—原理、应用、源码与注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更

    2024年04月09日
    浏览(57)
  • 【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧

    我有这样一串代码: 我们得到的图像为: loc :图例位置,可取(‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center , right’, ‘lower center’, ‘upper center’, ‘center’) ;若是使用了bbox_to_anchor,则这项就无效了; fontsize :int或flo

    2024年02月16日
    浏览(40)
  • 【Python】一文详细介绍plt.rcParams 在 Matplotlib 中的原理、作用、注意事项

    【Python】一文详细介绍plt.rcParams 在 Matplotlib 中的原理、作用、注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享

    2024年04月11日
    浏览(79)
  • 【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题

    【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分

    2024年03月22日
    浏览(41)
  • VScode中运行python时,使用matplotlib的plt.imshow()不显示图像 的参考解决方法

    自己的测试环境 Ubuntu20.04 自己使用VScode中运行python程序时,python程序中调用 matplotlib 的 plt.imshow() 不能显示图像的情况。 出现这种情况的解决方法很简单,在最后一个 plt.imshow(image) 的后面增加一个 plt.show() 即可解决问题。 [1] 灵犀智库. code9:VScode的python使用matplotlib的plt.sh

    2024年01月22日
    浏览(59)
  • Matplotlib subplot2grid()函数详解

    matplotlib.pyplot 模块提供了 subplot2grid(),该函数能够在画布的特定位置创建 axes 对象(即绘图区域)。不仅如此,它还可以使用不同数量的行、列来创建跨度不同的绘图区域。与subplot() 和 subplots() 函数不同,subplot2gird()函数以非等分的形式对画布进行切分,并按照绘图区域的大

    2024年02月16日
    浏览(36)
  • 在Python中matplotlib函数的plt.plot()函数的颜色参数设置,以及可以直接运行的程序代码!

    在matplotlib中, plt.plot()函数可以接受颜色参数 ,可以设置为 字符串颜色(如\\\'red\\\') ,也可以设置为 十六进制颜色 (如’#FF0000’表示红色),也可以设置为 RGB元组(如(1,0,0)表示红色) 。 如果想要用数值(如0,1)来设置颜色,可以使用 颜色映射(Colormap) 。 在matplotlib中

    2024年02月04日
    浏览(50)
  • 绘制3d散点图报错ax = fig.gca(projection = ‘3d‘)TypeError: gca() got an unexpected keyword argument

     问题:使用matplotlib绘制3d散点图时报错ax = fig.gca(projection = \\\'3d\\\') TypeError: gca() got an unexpected keyword argument \\\'projection\\\' 解决:改成如下代码即可运行

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包