我在Python中使用3DAxes来绘制曲面图。我试图操纵y轴从[25-0]开始,而不是从绘图本身的[0-25]开始。到目前为止,我尝试只使用ax.invert_yaxis(),但我的问题是这会改变x轴,使其具有与y轴相同的数值。我怀疑这是因为我在代码前面使用了np.meshgrid
有人知道如何反转y轴吗
我有这个:
我想改变,使y轴从25变为0,当然,surfaceplot也会随之改变
但是当我使用invert\u yaxis时,我得到了这样的结果:
这是错误的,因为x轴的数值也发生了变化
代码:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
Tcm_0 = 17.9 #K
def t(T):
return T/Tcm_0
my_0 = 1.25663706212e-6
Hcm_0 = 29.7 / my_0 #A/m
def Hc2(T):
return Hcm_0 * (1 - np.power(t(T),1.52))
def h(H, T):
return H/Hc2(T)
C_1 = 350e3 #AT/mm^2
def Jc(H, T):
return (C_1/(my_0*H))*(1 - np.power(t(T),1.52))*(1 - np.power(t(T),2))*np.power(h(H,T),0.5)*np.power(1-h(H,T),2)
fig = plt.figure()
ax = plt.axes(projection='3d')
T = np.linspace(0,17,100)
B = np.linspace(0.1,28,100)
H = B/my_0
T, H = np.meshgrid(T,H)
J = Jc(H,T)
B = H*my_0
surface = ax.plot_surface(T,B,J, cmap='winter', linewidth=0)
ax.set_xbound(0, Tcm_0)
ax.set_xlabel('Temperature [K]')
ax.set_ybound(0, Hcm_0*my_0)
ax.invert_yaxis() <- This us what I dont get to work.
plt.show()
您可以通过手动设置轴的限制来实现,无需反转任何内容
相关问题 更多 >
编程相关推荐