📜  matplotlib x 轴在顶部 - Python (1)

📅  最后修改于: 2023-12-03 15:17:35.212000             🧑  作者: Mango

Matplotlib X 轴在顶部 - Python

在 Matplotlib 中,我们可以通过几行代码将 X 轴放置在顶部。这种展示方式在某些情况下非常有用,例如当我们有两个 X 轴时,我们想要将其中一个放在顶部时。

步骤

下面是创建一个 Matplotlib 图表并将 X 轴放在顶部的步骤:

步骤1

首先,请确保Matplotlib库已通过以下命令安装:

pip install matplotlib
步骤2

导入 Matplotlib 库并创建一个新的图形对象。

import matplotlib.pyplot as plt

fig = plt.figure()
步骤3

创建两个轴对象 ax1 和 ax2,并将它们添加到图形对象 fig 中。

ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
步骤4

将 ax2 轴对象的 X 轴范围设置为与 ax1 相同。

ax2.set_xlim(ax1.get_xlim())
步骤5

移动 ax2 轴对象的 X 轴到顶部,同时隐藏 ax1 轴对象的 X 轴。

ax1.xaxis.tick_bottom()
ax2.xaxis.tick_top()
ax2.xaxis.set_label_position('top')
ax2.xaxis.set_ticks_position('top')
ax1.spines['bottom'].set_visible(False)
ax2.spines['bottom'].set_visible(False)
步骤6

使用 plot 函数在 ax1 和 ax2 轴对象上创建数据点。

import numpy as np

x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)

ax1.plot(x, y1, 'b-', label='sin')
ax2.plot(x, y2, 'r-', label='cos')
步骤7

为第二个 X 轴添加标签和刻度。

ax2.set_xlabel('X-label 2', fontsize=14, color='blue')
ax2.xaxis.set_ticks(np.arange(0, 10, 2))
步骤8

添加图例,并显示图形。

ax1.legend(loc='lower right')
ax2.legend(loc='lower left')
plt.show()
完整代码

以下是将 X 轴放置在顶部的完整代码:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()

ax2.set_xlim(ax1.get_xlim())
ax1.xaxis.tick_bottom()
ax2.xaxis.tick_top()
ax2.xaxis.set_label_position('top')
ax2.xaxis.set_ticks_position('top')
ax1.spines['bottom'].set_visible(False)
ax2.spines['bottom'].set_visible(False)

x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)

ax1.plot(x, y1, 'b-', label='sin')
ax2.plot(x, y2, 'r-', label='cos')

ax1.legend(loc='lower right')
ax2.legend(loc='lower left')
ax2.set_xlabel('X-label 2', fontsize=14, color='blue')
ax2.xaxis.set_ticks(np.arange(0, 10, 2))

plt.show()
结论

通过这个示例,我们已经学会了如何将 X 轴放在顶部。现在你可以通过修改示例代码,在自己的 Matplotlib 图表中添加顶部 X 轴的功能。