如何反转x轴或y轴

426 投票
10 回答
610810 浏览
提问于 2025-04-15 17:56

我有一个散点图,上面有一堆随机的 x 和 y 坐标。目前,Y 轴是从 0 开始,一直到最大值。我想把 Y 轴的起点改成最大值,然后往下到 0。

points = [(10,5), (5,11), (24,13), (7,8)]    
x_arr = []
y_arr = []
for x,y in points:
    x_arr.append(x)
    y_arr.append(y)
plt.scatter(x_arr,y_arr)

10 个回答

59

你也可以使用散点图的坐标轴对象提供的函数。

scatter = plt.scatter(x, y)
ax = scatter.axes
ax.invert_xaxis()
ax.invert_yaxis()
92

DisplacedAussie的回答是对的,但通常有个更简单的方法,就是直接反转你想要的那一条轴:

plt.scatter(x_arr, y_arr)
ax = plt.gca()
ax.set_ylim(ax.get_ylim()[::-1])

这里的 gca() 函数是用来获取当前的坐标轴实例,而 [::-1] 则是用来反转这个列表的。

816

现在有一个新的接口,让这个过程变得更简单了。

plt.gca().invert_xaxis()

和/或

plt.gca().invert_yaxis()

撰写回答