matplotlib中的plt.figure()、plt.subplot()、plt.subplots()、add_subplots以及add_axes的使用

【时间】2018.11.12

【题目】matplotlib中的plt.figure()、plt.subplot()、plt.subplots()、add_subplots以及add_axes的使用

概述

本文是博文https://blog.youkuaiyun.com/m0_37362454/article/details/81511427的简要概括,具体内容请看原博文。主要讲述了matplotlib中的plt.figure()、plt.subplot()、plt。subplots()\add_subplots以及add_axes的语法与使用方法。

一.plt.figure语()---在plt中绘制一张图片

1.1figure语法说明

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

  • num:图像编号或名称,数字为编号 ,字符串为名称
  • figsize:指定figure的宽和高,单位为英寸;
  • dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80      1英寸等于2.5cm,A4纸是 21*30cm的纸张 
  • facecolor:背景颜色
  • edgecolor:边框颜色
  • frameon:是否显示边框

1.2例子

【代码】:

import matplotlib.pyplot as plt
fig=plt.figure(figsize=(4,3),facecolor='blue')
plt.show()

【运行结果】:

2.subplot--创建单个子图

2.1.subplot语法

subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)

2.2例子

【代码】

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

plt.subplot(221)
plt.plot(x, x)
#作图2
plt.subplot(222)
plt.plot(x, -x)
#作图3
plt.subplot(223)
plt.plot(x, x ** 2)
plt.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#作图4
plt.subplot(224)
plt.plot(x, np.log(x))
plt.show()

【运行结果】

三.subplots--创建多个子图

3.1subplots语法

subplots参数与subplots相似。两者都可以规划figure划分为n个子图,但每条subplot命令只会创建一个子图,而一条subplots就可以将所有子图创建好。

3.例子

【代码】

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 100)
#划分子图
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]

#作图1
ax1.plot(x, x)
#作图2
ax2.plot(x, -x)
#作图3
ax3.plot(x, x ** 2)
ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#作图4
ax4.plot(x, np.log(x))
plt.show()

【运行结果】

四、add_subplot方法----给figure新增子图

4.1语法

add_subplot()的作用与subplot一样,用于新增子图。具体如下:

#新建figure对象
fig=plt.figure()
#新建子图1,(2,2,1)表示创建2x2子图中的第一个
ax1=fig.add_subplot(2,2,1)     

4.2 例子

【代码】

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
#新建figure对象
fig=plt.figure()
#新建子图1
ax1=fig.add_subplot(2,2,1)
ax1.plot(x, x)
#新建子图2
ax3=fig.add_subplot(2,2,2)
ax3.plot(x, x ** 2)
ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#新建子图3
ax4=fig.add_subplot(2,2,3)
ax4.plot(x, np.log(x))
plt.show()

 

【运行结果】

五、add_axes方法----新增子区域

5.1语法

add_axes为新增子区域,该区域可以坐落在figure内任意位置,且该区域可任意设置大小。具体如下:

 fig.add_axes([left, bottom, width, height])

其中left, bottom表示左边以及下边的起始位置,width, heigh表示宽高占原fig的比例。比如:

left, bottom, width, height = 0.1, 0.1, 0.8, 0.8 表示子区域从figure 10%的位置开始绘制, 宽高是figure的80%

5.2例子

【代码】:


import matplotlib.pyplot as plt

#新建figure
fig = plt.figure()
# 定义数据
x = [1, 2, 3, 4, 5, 6, 7]
y = [1, 3, 4, 2, 5, 8, 6]
#新建区域ax1
#figure的百分比,从figure 10%的位置开始绘制, 宽高是figure的80%
left, bottom, width, height = 0.1, 0.1, 0.8, 0.8
# 获得绘制的句柄
ax1 = fig.add_axes([left, bottom, width, height])
ax1.plot(x, y, 'r')
ax1.set_title('area1')

#新增区域ax2,嵌套在ax1内
left, bottom, width, height = 0.2, 0.6, 0.25, 0.25
# 获得绘制的句柄
ax2 = fig.add_axes([left, bottom, width, height])
ax2.plot(x,y, 'b')
ax2.set_title('area2')
plt.show()

【运行结果】

 

 

 

<think>好的,我现在需要帮助用户查询matplotlib.axes._axes函数的使用说明和文档。首先,我应该回忆一下自己对这个模块的了解。Matplotlib中的Axes类确实是绘图的核心,负责坐标轴、标签、标题等元素的处理。用户提到的_axes可能是指内部的_Axes类,但通常用户不会直接使用下划线开头的类,因为这在Python中通常表示私有或内部实现。 接下来,我需要确认用户的实际需求。用户可能误写了函数名,或者想了解Axes类的基本用法。根据用户提供的引用内容,引用[1]提到了Axes类包含图形元素,引用[2]展示了如何使用set_title等方法。因此,用户可能想了解如何创建和配置Axes对象,比如使用plt.subplots()或fig.add_subplot()。 然后,我需要检查官方文档或可靠资料。通常,matplotlib官方文档推荐用户通过pyplot接口来创建Axes实例,而不是直接实例化_Axes类。直接使用_Axes可能会导致兼容性问题,因为内部实现可能随版本变化而改变。 另外,用户可能需要一些示例代码来理解如何使用Axes的方法,比如设置标签、标题或绘制图形。引用[2]中的代码展示了如何设置包含LaTeX公式的标签和标题,这可以作为示例的一部分,说明如何使用r字符串和数学符号。 还需要注意用户提到的系统级指令,比如正确使用LaTeX格式,行内公式用$...$,独立公式用$$...$$。在回答中需要确保代码示例正确,并符合这些格式要求。同时,生成相关问题,帮助用户深入理解。 最后,总结用户可能的误区,指出直接使用_Axes并不推荐,并引导用户使用公共API,如plt.subplots()或Figure.add_subplot()。同时提供官方文档链接,方便用户进一步查阅。</think>关于`matplotlib.axes._axes`函数的使用说明如下: --- ### 核心说明 `matplotlib.axes._axes`是Matplotlib库中**Axes类的内部实现模块**,通常不建议直接操作。实际开发中应通过以下方式访问Axes对象: 1. 使用`plt.subplots()`创建FigureAxes 2. 通过`fig.add_subplot()`添加子图 3. 通过`ax.plot()`等面向对象接口操作图形元素[^1][^2] --- ### 典型用法示例 ```python import matplotlib.pyplot as plt # 创建FigureAxes对象 fig, ax = plt.subplots() # 设置坐标轴标签(支持LaTeX公式) ax.set_xlabel(r'$\theta$ (radians)', fontsize=12) ax.set_ylabel(r'$f(\theta)$', fontsize=12) # 设置带数学公式的标题 ax.set_title(r'Waveform: $y = \sin(2\pi x) + \epsilon$', color='blue') # 绘制函数图像 x = np.linspace(0, 2*np.pi, 100) ax.plot(x, np.sin(x), label='Sine') ax.plot(x, np.cos(x), '--', label='Cosine') # 添加图例和网格 ax.legend() ax.grid(True) plt.show() ``` --- ### 重要方法说明 1. **坐标设置** ```python ax.set_xlim(0, 10) # 设置X轴范围 ax.set_xticks([0, np.pi, 2*np.pi]) # 设置刻度位置 ax.set_xticklabels(['0', r'$\pi$', r'$2\pi$']) # 设置刻度标签 ``` 2. **图形标注** ```python ax.annotate(r'Maximum point $\frac{dy}{dx}=0$', xy=(np.pi/2, 1), xytext=(np.pi/2+1, 0.8), arrowprops=dict(facecolor='red')) ``` 3. **特殊坐标系** ```python ax.set_aspect('equal') # 设置等比例坐标系 ax.set_transform(ax.transAxes) # 使用相对坐标系[^1] ``` --- ### 注意事项 1. **内部类警告**:`_axes`是底层实现类,直接实例化可能导致版本兼容性问题 2. **数学公式渲染**:使用`r''`原始字符串包裹含LaTeX的表达式[^2] 3. **对象生命周期**:Axes对象必须与父Figure对象保持关联 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值