pycharm画三维图三个坐标轴刻度不一致的解决方法

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')#画散点图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值