📜  pyplot 不显示轴 - Python (1)

📅  最后修改于: 2023-12-03 14:45:45.302000             🧑  作者: Mango

Pyplot 不显示轴 - Python

在使用 Matplotlib 的 Pyplot 模块进行数据可视化时,有时会希望隐藏或移除轴。这可能是因为轴标签和刻度线会干扰数据的视觉表现,或者因为您想要实现一些不需要轴的独特效果。本文将介绍如何使用 Pyplot 模块在 Python 中隐藏或移除轴。

隐藏轴

要隐藏 Pyplot 中的轴,可以使用 plt.axis('off') 命令。它会禁用所有轴和外部边框。示例如下:

import matplotlib.pyplot as plt
import numpy as np

# 生成一些数据
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

# 绘制图形并隐藏轴
plt.plot(x, y)
plt.axis('off')
plt.show()

在这个示例中,使用 np.linspace() 函数生成一个包含 100 个点的等差数列 x,范围是 0 到 $2\pi$。同时,通过 np.sin() 函数计算 x 中每个元素的正弦值,并将它们存入 y 当中。然后,使用 plt.plot() 函数绘制出这个数据的曲线,并使用 plt.axis('off') 命令隐藏轴。最后,使用 plt.show() 函数展示出图形。图像中的轴已被完全隐藏,只剩下数据的曲线。

移除轴

要移除轴而不是仅仅隐藏它们,您需要使用 spines 对象。轴的 spines 属性包含了轴线对象,可以用它来设置轴的背景色。通过将所有轴的背景色设置为 None 就可以移除轴了,示例如下:

import matplotlib.pyplot as plt
import numpy as np

# 生成一些数据
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

# 绘制图形并移除轴
fig, ax = plt.subplots()
ax.plot(x, y)

# 将所有轴的背景色设置为 None
for spine in ax.spines.values():
    spine.set_visible(False)

# 移除刻度线
ax.set_xticks([])
ax.set_yticks([])

plt.show()

在这个示例中,使用 plt.subplots() 函数建立一个新的画布 fig 和子图 ax。使用 ax.plot() 函数绘制出数据的曲线,并使用 ax.spines.values() 来遍历所有轴的 spines 属性。在循环中,将每个轴的 spine 的可见性设置为 False,这样就可以完全移除轴了。例如,如果只想移除顶部和右侧的轴,可以使用以下代码:

# 移除顶部和右侧轴
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)

最后,使用 ax.set_xticks([])ax.set_yticks([]) 命令将刻度线移除,并通过 plt.show() 展示出图形。