gpt4 book ai didi

python - matplotlib-3D-plots 中没有 z 轴的指数形式

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:05 26 4
gpt4 key购买 nike

我遇到了与 How to prevent numbers being changed to exponential form in Python matplotlib figure 中描述的类似问题:

我不想要(在我的特殊情况下)奇怪的轴科学格式。我的问题有所不同,因为我在 z-Axis 上遇到了这个问题。对于二维绘图,我可以使用 ax.get_yaxis().get_major_formatter().set_useOffset(False)。而且没有函数 ax.get_zaxis()

我用什么来格式化我的 z-Axis?

编辑:示例:

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import sys
import matplotlib
import matplotlib.pyplot as pyplot

def func(xi, ti):
res = 10e3 + np.cos(ti) * np.sin(xi)
return res

if __name__ == '__main__':
timeSpacing = 20
timeStart = 0
timeEnd = 1
time = np.linspace(timeStart, timeEnd, timeSpacing)
widthSpacing = 50
widthStart = 0
widthEnd = 3
width = np.linspace(widthStart, widthEnd, widthSpacing)
resList = []
matplotlib.rcParams['legend.fontsize'] = 10
fig = pyplot.figure()
ax = fig.gca(projection = '3d')
for i, item in enumerate(time):
ti = [item for t in width]
res = func(width, ti)
ax.plot(width, ti, res, 'b')
ax.set_xlabel('x')
ax.set_ylabel('t')
ax.set_zlabel('f(x,t)')
pyplot.show()

enter image description here

最佳答案

如您所说,没有get_zaxis() 方法。但是,幸运的是,有 zaxis 字段(所以不要添加 ())。还有 xaxisyaxis 字段,因此您可以根据需要统一使用所有这些字段而不是 get_...axis()

例如:

if __name__ == '__main__':
...
ax = fig.gca(projection = '3d')
ax.zaxis.get_major_formatter().set_useOffset(False) # here
for i, item in enumerate(time):
...

最终结果应该是这样的:

new plot that doesn't use exponential form

如您所见,对于较大的数字,它可能看起来不太好......

关于python - matplotlib-3D-plots 中没有 z 轴的指数形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com