Инвертировать ось y на matplotlib trisurf 3d graph python

Я использую matplotlib для создания трехмерного графа trisurf. У меня все работает, за исключением того, что я хотел бы инвертировать ось Y, чтобы начало координат было 0,0, а не 0,100. Я просмотрел matplotlib axes3d API и не могу понять, как это сделать. Вот мой код:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm

# my data, xs=xaxis, ys=yaxis, zs=zaxis
mortar_xs = []
cycles_ys = []
score_zs = []

#... populate my data for the 3 arrays: mortar_xs, cycles_ys, score_zs

# plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_trisurf(mortar_xs,cycles_ys,score_zs,cmap=cm.coolwarm)
ax.set_zlim(bottom=0.0,top=1.0) 
ax.legend()
ax.set_xlabel("# Mortar")
ax.set_ylabel("# Goals")
ax.set_zlabel("# Score")
plt.show()

Мой построенный график выглядит следующим образом, но мне нужно, чтобы «Цели #» или ось Y были перевернуты, чтобы исходная точка была 0,0, а не 0,100. Если возможно, я хотел бы сделать это, не меняя свои данные.

график трисерфинга


person Dustin    schedule 01.12.2015    source источник
comment
ax.set_ylim(0,100) работает? Или ax.set_ylim(100,0)?   -  person tmdavison    schedule 01.12.2015
comment
да! Я должен был попробовать это, прежде чем публиковать. Благодарю вас!   -  person Dustin    schedule 01.12.2015


Ответы (2)


Самый простой способ — использовать ax.invert_yaxis().

person ali_m    schedule 01.12.2015

Комментарий tmdavison - это то, что я искал:

ax.set_ylim(0,100)

Or

ax.set_ylim(100,0)

person Dustin    schedule 26.11.2019