pycharm 画图用的这个库matplotlib 挺奇怪的,可以画三维图,却没有z轴的刻度范围等属性的设置。 这里有个笨办法。 在画需要的三维图前画个大的散点图正方体,这样三维图开始的设置都会按照这个立方体设置,基本就均匀了,刻度显示我没处理,但是长度上应该一致了。 图: 代码: import matplotlib as mpl from mpl_toolkits.mplot3d import Axes3D import numpy as np import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocator mpl.rcParams['legend.fontsize'] = 10#设置字体大小 fig = plt.figure() ax = fig.add_subplot(projection='3d')#增加坐标轴 x_major_locator=MultipleLocator(1) #把x轴的刻度间隔设置为1,并存在变量里 y_major_locator=MultipleLocator(1) #把y轴的刻度间隔设置为10,并存在变量里 ax=plt.gca() #ax为两条坐标轴的实例 ax.xaxis.set_major_locator(x_major_locator) #把x轴的主刻度设置为1的倍数 ax.yaxis.set_major_locator(x_major_locator) # plt.rcParams['font.sans-serif'] = ['FangSong'] # 设置坐标轴标签中文 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') s=10 sz=20 stand_box=[[-s, -s, 0], [s, s, 0], [s, -s, 0], [-s, s, 0], [-s, -s, sz], [s, s, sz], [s, -s, sz], [-s, s, sz], ]#设置初始显示范围,自动根据该范围控制刻度尺 line_vector = np.array(stand_box) ax.scatter3D(line_vector[:, 0], line_vector[:, 1], line_vector[:, 2], label='stand_box curve', color ='w')#画散点图
pycharm画三维图三个坐标轴刻度不一致的解决方法
最新推荐文章于 2025-07-02 14:31:05 发布