Matplotlib 3D绘图中沿y轴绘制固定x、z的直线不显示问题求助
问题原因与修复方案
你的代码无法渲染直线的核心原因是坐标轴显示范围和实际数据范围完全不匹配,具体问题如下:
- 你设置的x轴范围为
[3,6](ax.set_xlim(6,3)等价于反转x轴,实际显示区间为3到6),但你的x坐标固定为1.0,完全落在x轴显示范围之外 - 你设置的y轴范围为
[0,1.1],但你的y坐标取值为3到6,完全落在y轴显示范围之外
整条直线的所有采样点都不在画布可视区域内,自然无法正常渲染。修改坐标轴范围匹配你的数据即可解决问题,修复后的代码如下:
import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # points z = np.repeat(0.1, 100) x = np.repeat(1.0, 100) y = np.linspace(start=3.0, stop=6.0, num=100) # 修正坐标轴范围,匹配实际数据区间 ax.set_xlim(0,7) ax.set_ylim(2,7) ax.set_zlim(0,1.75) # plot ax.plot(x, y, z, c='red',label=r'straight line at $x=1.0$') ax.legend() plt.show()
小提示:如果不确定数据范围,可以先不手动设置坐标轴范围,matplotlib会自动适配数据的最大最小值生成合适的可视区间,确认显示正常后再按需调整坐标轴范围、反转方向即可。
内容的提问来源于stack exchange,提问作者user4933
相关产品推荐
相关产品推荐

