def plot_test():
x=np.arange(-10,10)
y=(0.1*x)**3
plt.plot(x,y,'ko')
plt.grid()
plot_test()
上のグラフのx軸を反転させる方法として、ネット上で一番見かけるのは、
plot_test()
xlim(10,-10)
(10, -10)
plot_test()
plt.xlim(plt.xlim()[::-1])
# 2行に分けると、
#_xlim=plt.xlim()
#plt.xlim(_xlim[::-1])という事。
(10.0, -10.0)
plot_test()
plt.gca().invert_xaxis()
# 2行に分けると、
#ax=plt.gca()
#ax.invert_xaxis()
現在反転しているかどうかを判定する命令もあります。
plot_test()
plt.xlim(plt.xlim()[::-1])
print plt.gca().xaxis_inverted()
True
y軸に対しても同様です。
xlim,ylimを取得してから反転させるのと、特段の差は無いようです。
ただ、もしかしたら将来のバージョンではあらかじめaxesに反転を設定しておく以下の様な例が上手く働くようになるのではないか、と想像しています。
ax=plt.subplot(211)
ax.invert_xaxis()
x=np.arange(-10,10)
y=(0.1*x)**3
plt.plot(x,y,'ko')
plt.grid()
現状では、以下のようにプロットしてからinvertしないと上手く働きません。
ax=plt.subplot(211)
x=np.arange(-10,10)
y=(0.1*x)**3
plt.plot(x,y,'ko')
ax.invert_xaxis()
plt.grid()
おそらく、invert_xaxisの場合でも、内部では
plt.xlim(plt.xlim()[::-1])
と同じ動作をしているのだろうと思います。
なので、最初の例ではデフォルトのxlimの値(0,1)を反転して設定したのでしょう。