matplotlib 3d轴记号、标注和LaTeX

ghhaqwfi  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(187)

我运行的是this示例脚本,有以下修改:

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve')
ax.legend()

ax.set_xlabel('$X$', fontsize=20, rotation=150)
ax.set_ylabel('$Y$')
ax.set_zlabel(r'$\gamma$', fontsize=30, rotation=60)
ax.yaxis._axinfo['label']['space_factor'] = 3.0

plt.show()

1.如何将轴刻度调整为我选择的刻度?也就是说,我如何让z轴只标记2、0和-2,并使用我想要的字体大小?我知道如何在2D中做到这一点,但不是3D。
1.上面的脚本生成以下内容:

为什么x轴标签扭曲了,我想用这个脚本来做,但z轴标签(gamma)却没有?这说不通。我需要用希腊字母标注这个轴。我该怎么解决这个问题?

c6ubokkw

c6ubokkw1#

如何将轴刻度调整为我选择的刻度?也就是说,我如何让z轴只标记2、0和-2,并使用我想要的字体大小?我知道如何在2D中做到这一点,但不是3D。
您必须更改zticks的属性。
为什么x轴标签扭曲了,我想用这个脚本来做,但z轴标签(gamma)却没有?这说不通。我需要用希腊字母标注这个轴。我该怎么解决这个问题?
必须禁用z轴标签的自动旋转。看看下面的代码:

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve')
ax.legend()

ax.set_xlabel('$X$', fontsize=20)
ax.set_ylabel('$Y$')
ax.yaxis._axinfo['label']['space_factor'] = 3.0
# set z ticks and labels
ax.set_zticks([-2, 0, 2])
# change fontsize
for t in ax.zaxis.get_major_ticks(): t.label.set_fontsize(10)
# disable auto rotation
ax.zaxis.set_rotate_label(False) 
ax.set_zlabel('$\gamma$', fontsize=30, rotation = 0)
plt.show()

kdfy810k

kdfy810k2#

for循环不是必需的,要更改记号的大小,您可以用途:

ax.zaxis.set_tick_params(labelsize=10)

相关问题