353

ランダムな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)
4

10 に答える 10

697

これをさらに簡単にする新しい API があります。

plt.gca().invert_xaxis()

および/または

plt.gca().invert_yaxis()
于 2011-11-26T18:12:42.580 に答える
75

DisplacedAussieの答えは正しいですが、通常、より短い方法は、問題の単一の軸を逆にすることです。

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

gca()関数は現在の Axes インスタンスを返し、リストを[::-1]反転します。

于 2010-01-12T22:04:08.437 に答える
23

matplotlib.pyplot.axis()を使用

axis([xmin, xmax, ymin, ymax])

したがって、最後に次のようなものを追加できます。

plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])

極端な点が境界線に収まらないように、両端にパディングが必要な場合があります。

于 2010-01-12T20:42:39.167 に答える
21

pylabモードで ipython を使用している場合は、

plt.gca().invert_yaxis()
show()

これshow()は、現在の Figure を更新するために必要です。

于 2012-10-11T14:34:13.123 に答える
3

または、任意のプロット軸を反転できる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]))
于 2015-09-10T12:53:13.737 に答える