我有一个带有一堆随机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)
如果你在 pylab 模式下进行ipython,那么
pylab
plt.gca().invert_yaxis() show()
需要 show() 才能更新当前数字 .
show()
或者,您可以使用matplotlib.pyplot.axis()功能,该功能允许您反转任何绘图轴
ax = matplotlib.pyplot.axis() matplotlib.pyplot.axis((ax[0],ax[1],ax[3],ax[2]))
或者,如果您只想反转X轴,那么
matplotlib.pyplot.axis((ax[1],ax[0],ax[2],ax[3]))
实际上,您可以反转两个轴:
matplotlib.pyplot.axis((ax[1],ax[0],ax[3],ax[2]))
DisplacedAussie的答案是正确的,但通常较短的方法只是反转有问题的单轴:
plt.scatter(x_arr, y_arr) ax = plt.gca() ax.set_ylim(ax.get_ylim()[::-1])
gca() 函数返回当前Axes实例, [::-1] 反转列表 .
gca()
[::-1]
有一个新的API使这更简单 .
plt.gca().invert_xaxis()
和/或
plt.gca().invert_yaxis()
与上述方法类似的另一种方法是使用 plt.ylim 例如:
plt.ylim
plt.ylim(max(y_array), min(y_array))
当我尝试在Y1和/或Y2上复合多个数据集时,此方法适用于我
使用matplotlib.pyplot.axis()
axis([xmin, xmax, ymin, ymax])
所以你最后可以添加这样的东西:
plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])
虽然你可能想要在每一端填充,以便极 endpoints 不会坐在边界上 .
使用ylim()可能是最适合您的方法:
xValues = list(range(10)) quads = [x** 2 for x in xValues] plt.ylim(max(quads), 0) plt.plot(xValues, quads)
将导致:
7 回答
如果你在
pylab
模式下进行ipython,那么需要
show()
才能更新当前数字 .或者,您可以使用matplotlib.pyplot.axis()功能,该功能允许您反转任何绘图轴
或者,如果您只想反转X轴,那么
实际上,您可以反转两个轴:
DisplacedAussie的答案是正确的,但通常较短的方法只是反转有问题的单轴:
gca()
函数返回当前Axes实例,[::-1]
反转列表 .有一个新的API使这更简单 .
和/或
与上述方法类似的另一种方法是使用
plt.ylim
例如:当我尝试在Y1和/或Y2上复合多个数据集时,此方法适用于我
使用matplotlib.pyplot.axis()
axis([xmin, xmax, ymin, ymax])
所以你最后可以添加这样的东西:
虽然你可能想要在每一端填充,以便极 endpoints 不会坐在边界上 .
使用ylim()可能是最适合您的方法:
将导致: