我有一堆随机x,y坐标的散点图。目前,Y轴从0开始并达到最大值。我想Y轴开始在最大值,并上升到0。PyPlot中的反向Y轴
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)
我有一堆随机x,y坐标的散点图。目前,Y轴从0开始并达到最大值。我想Y轴开始在最大值,并上升到0。PyPlot中的反向Y轴
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)
有一个新的API使得它更简单。
plt.gca().invert_xaxis()
和/或
plt.gca().invert_yaxis()
axis([xmin, xmax, ymin, ymax])
所以,你可以在最后这样添加的东西:
plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])
虽然你可能想在每一端填充,以便极端点不坐在边界上。
希望我可以标记你们两个正确。感谢DisplacedAussie! – DarkAnt 2010-01-14 17:48:47
DisplacedAussie的回答是正确的,但通常更短的方法只是扭转问题单轴:
plt.scatter(x_arr, y_arr)
ax = plt.gca()
ax.set_ylim(ax.get_ylim()[::-1])
其中gca()
函数返回当前轴实例和[::-1]
反转的列表中。
这似乎是对我更好的答案。 :) – DisplacedAussie 2010-01-12 23:07:25
'plt.ylim(plt.ylim()[:: - 1])'为我工作。 – 2013-10-30 08:40:31
如果您在IPython的是在pylab
模式,然后
plt.gca().invert_yaxis()
show()
的show()
需要,使其更新当前的身影。
另一个类似的方法与上述是使用plt.ylim
例如:
plt.ylim(max(y_array), min(y_array))
此方法适用于我,当我试图在Y1和/或Y2
化合物多个数据集可替代地,你可以使用matplotlib.pyplot.axis()功能,它可以让你的任何反转的情节轴
ax = matplotlib.pyplot.axis()
matplotlib.pyplot.axis((ax[0],ax[1],ax[3],ax[2]))
或者,如果你喜欢ONL Ÿ反向X轴,然后
matplotlib.pyplot.axis((ax[1],ax[0],ax[2],ax[3]))
事实上,你可以反转两个轴:使用ylim()可能是你的目的,最好的办法
matplotlib.pyplot.axis((ax[1],ax[0],ax[3],ax[2]))
我认为这是目前正确的答案。 – heltonbiker 2012-05-04 18:53:23
它绝对是。 – 2013-02-12 15:59:47
请注意,您必须在*轴反转之前设置轴限制*,否则它将再次反转。 – TheBigH 2016-01-22 15:56:58