将所有标签值移动到远离轴的位置

时间:2019-03-20 19:22:19

标签: python matplotlib

我创建了一个表面图,但是问题是我的刻度标签和轴标签相互重叠。有什么办法可以使标签的所有轴都远离刻度标签?实际上,我需要使刻度标签的字体保持较大,因此使其不适合我的情况。enter image description here

1 个答案:

答案 0 :(得分:4)

几种设置方式

对于所有带有rcParams且使用

的轴
from matplotlib import rcParams
rcParams['axes.labelpad'] = 20.0

(对于轴手柄)单独

ax.xaxis.labelpad = 20
ax.yaxis.labelpad = 20
ax.zaxis.labelpad = 20

如果没有轴,可以在此轴之前

ax = plt.gca()

创建标签时

plt.xlabel("X Label", labelpad=20)
plt.ylabel("Y Label", labelpad=20)
plt.zlabel("Z Label", labelpad=20)

或用于轴手柄

ax.set_xlabel("X Label", labelpad=20)
ax.set_ylabel("Y Label", labelpad=20)
ax.set_zlabel("Z Label", labelpad=20)

这是一个使用随机生成的数据的完整示例

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import rcParams
rcParams['axes.labelpad'] = 20.0

fig = plt.figure(figsize=(14,9))
ax = fig.add_subplot(111, projection='3d')

XS = np.random.randn(100)
YS = np.random.randn(100)
ZS = np.random.randn(100)

ax.scatter(XS, YS, ZS, c='r', marker='o')
plt.title("3D Scatterplot")
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()

Example