ランダムな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)
ランダムな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)
これをさらに簡単にする新しい API があります。
plt.gca().invert_xaxis()
および/または
plt.gca().invert_yaxis()
DisplacedAussieの答えは正しいですが、通常、より短い方法は、問題の単一の軸を逆にすることです。
plt.scatter(x_arr, y_arr)
ax = plt.gca()
ax.set_ylim(ax.get_ylim()[::-1])
gca()
関数は現在の Axes インスタンスを返し、リストを[::-1]
反転します。
axis([xmin, xmax, ymin, ymax])
したがって、最後に次のようなものを追加できます。
plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])
極端な点が境界線に収まらないように、両端にパディングが必要な場合があります。
pylab
モードで ipython を使用している場合は、
plt.gca().invert_yaxis()
show()
これshow()
は、現在の Figure を更新するために必要です。
または、任意のプロット軸を反転できる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]))