迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

如何在 Matplotlib 中绘制等轴的正方形图

作者:迹忆客 最近更新:2023/03/17 浏览次数:

我们可以使用 set_aspect() 方法设置绘图的纵横比以使其成为正方形绘图,而 axis() 方法也可以用于在 Matplotlib 中制作具有相等轴的正方形绘图。

set_aspect() 绘制等轴方图

我们可以使用 matplotlib.axes.Axes.set_aspect() 函数设置长宽比。如果在函数中使用等于作为长宽比,则得到的图在 X 轴和 Y 轴上从数据点到绘图单位的缩放比例相同。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3,3,100)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(x, y)
plt.xlim(-3,3)
plt.ylim(-3,3)

ax.set_aspect('equal', adjustable='box')

plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

使用 set_aspect 等于 equal.png 的等轴正方形图

plt.xlim(-3,3)
plt.ylim(-3,3)

ax.set_aspect('equal')

它将 X 轴和 Y 轴设置为相同的范围。然后 ax.set_aspect('equal') 将两个轴设置为相等。

当两个轴的范围设置为相同时,上述方法仅产生一个正方形图。要在一般情况下生成正方形图,我们必须使用以下命令手动设置纵横比:

axes.set_aspect(1./axes.get_data_ratio())

axes.get_data_ratio() 获取原始绘图数据的比率。倒数的值传递给 set_aspect() 以使轴相等,而无需手动设置轴的限制。

代码:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3,3,100)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(x, y)

ax.set_aspect(1.0/ax.get_data_ratio(), adjustable='box')

plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

使用 set_aspect 一般具有相等轴的正方形图

使用 axis() 方法生成正方形图

如果我们将 "square" 作为参数传递给 matplotlib.pyplot.axis(),则会创建一个正方形图其中两个轴所占的范围等于图中的长度。

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y=np.sin(x)
plt.plot(x, y)
plt.axis('square')
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

使用轴方法绘制等轴正方形图

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便