在Matplotlib中更改3D图的纵横比

时间:2019-02-04 23:48:53

标签: python matplotlib plot mplot3d

我正在尝试使用matplotlib绘制点云,我想扩展时间轴,同时保持x轴和y轴相同,从本质上来说,我的绘图变得比长方形更像长方形。目前,我有以下代码:

def plot_events(event_slice, cap_events, frame_idx):
number_to_display = 5
number_cap_events_to_display = 1
eventsize = 2

plt.rcParams.update({'font.size': 22})

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

ax.view_init(elev=33., azim=140)

ax.set_xlabel('time [s]')
ax.set_ylabel('x')
ax.set_zlabel('y')

ax.set_xticklabels([""])
ax.set_yticklabels([""])
ax.set_zticklabels([""])

ax.set_ylim([0, 240])
ax.set_zlim([0, 180])

X = event_slice[0::number_to_display, t_col]
Y = event_slice[0::number_to_display, x_col]
Z = event_slice[0::number_to_display, y_col]

ax.scatter(X, Y, Z, s=eventsize, c=(event_slice[0::number_to_display, 3]),
           edgecolors='none', cmap=custom_cm)
ax.scatter(cap_events[0::number_cap_events_to_display, t_col], cap_events[0::number_cap_events_to_display, x_col],
           cap_events[0::number_cap_events_to_display, y_col], s=eventsize, c='k',
           edgecolors='none')

fig.tight_layout()
plt.show()

plt.close()

结果图如下: enter image description here 只需更改时间轴的范围,就可以在保持轴大小不变的同时压缩数据。

我知道这个问题有一些“解决方案”;尤其是herehere,但是这些答案对我不起作用,或者要求我实际编辑matplotlib库中的代码,然后导致我的其他脚本停止工作...也,这些答案现在已经很旧了(最近的是2012年),所以我想知道是否有针对此问题的新解决方案。

0 个答案:

没有答案