使用colormap绘制分段线

时间:2017-12-01 17:30:16

标签: python numpy matplotlib

我有一个模拟工具,它给我温度数组作为结果。这些温度阵列在每个时间步1D阵列中。为了想象它们(我有很多这些温度数组,每个温度数组代表我模拟的环境的不同部分)我想用matplotlib绘制它们。由于这些阵列所代表的零件具有不同的形状,我需要在这些形状中绘制温度阵列,并在Z轴上使用颜色条生成温度。
对于我的2D阵列,使用pcolormesh绘图可以很好地工作,但是绘制时,非水平或垂直的线将显示为别名。设置antialiased=True会对此有所帮助,但会产生大的" blob"哪个不好看。

有没有办法让线条更少" blobby"使用pcolormesh时? 我的最低工作范例如下:

# temperature array
temp = np.arange(20, dtype=np.float64) + 25
# x and y vector along vertices (0, 0), (5, 15), (12, 16) and (0, 20):
x_vec = np.concatenate((np.linspace(0, 5, 7, endpoint=False), np.linspace(5, 12, 4, endpoint=False), np.linspace(12, 0, 9)))
y_vec = np.concatenate((np.linspace(0, 15, 7, endpoint=False), np.linspace(15, 16, 4, endpoint=False), np.linspace(16, 20, 9)))
# make diagonal matrix from temp for plotting:
t_dia = np.diag(temp)

# set 0 to nan for correct colorbar in pcolormesh:
t_dia[t_dia == 0] = np.nan
# and now plot pcolormesh:
fig2 = mp.figure()
ax2 = fig2.gca()
surf2 = ax2.pcolormesh(x_vec, y_vec, t_dia, linewidth=10, antialiased=True, edgecolors='None')
fig2.colorbar(surf2)

提前感谢您的帮助! (因为我现在在周末,我很可能在周一之前无法回答。)

0 个答案:

没有答案