有没有一种方法可以在Python的3DAxes plot_曲面中正确反转yaxis,而不干扰xaxis?

2024-05-29 00:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中使用3DAxes来绘制曲面图。我试图操纵y轴从[25-0]开始,而不是从绘图本身的[0-25]开始。到目前为止,我尝试只使用ax.invert_yaxis(),但我的问题是这会改变x轴,使其具有与y轴相同的数值。我怀疑这是因为我在代码前面使用了np.meshgrid

有人知道如何反转y轴吗

我有这个:

enter image description here

我想改变,使y轴从25变为0,当然,surfaceplot也会随之改变

但是当我使用invert\u yaxis时,我得到了这样的结果:

enter image description here

这是错误的,因为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()

Tags: 代码importreturnmydefnppltax

热门问题