Python 用彩色地图绘制分割线

Python 用彩色地图绘制分割线,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一个模拟工具,它给了我温度阵列作为结果。这些温度阵列位于每个时间步1D阵列中。为了可视化它们(我有很多这样的温度阵列,每个阵列代表我模拟的环境的不同部分),我想用matplotlib绘制它们。由于这些数组表示的零件具有不同的形状,因此我需要在这些形状中绘制温度数组,并使用颜色条在Z轴上显示温度。 对于我的2D阵列,使用pcolormesh绘图时效果很好,但非水平或垂直的线在绘图时会显示为锯齿状。设置antialiased=True将对此有所帮助,但会产生大的“斑点”,看起来不太好看 使用pc

我有一个模拟工具,它给了我温度阵列作为结果。这些温度阵列位于每个时间步1D阵列中。为了可视化它们(我有很多这样的温度阵列,每个阵列代表我模拟的环境的不同部分),我想用matplotlib绘制它们。由于这些数组表示的零件具有不同的形状,因此我需要在这些形状中绘制温度数组,并使用颜色条在Z轴上显示温度。
对于我的2D阵列,使用
pcolormesh
绘图时效果很好,但非水平或垂直的线在绘图时会显示为锯齿状。设置
antialiased=True
将对此有所帮助,但会产生大的“斑点”,看起来不太好看

使用
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)
提前谢谢你的帮助!
(由于我现在将在周末,我很可能要到星期一才能回答。)

应该很清楚,你不能同时问两个完全不同的问题。他们的解决方案完全不同。你想在这里回答哪一个问题?从问题中删除另一个-可能问一个不同的问题。因为最后你想用不同的颜色画一条线,我标记为about it的副本。获取该颜色条会有什么问题?我标记为另一个直接使用颜色条的副本。如果您想要的是pcolormesh和LineCollection,则它们可能位于相同的轴上。应该清楚的是,您不能同时问两个完全不同的问题。他们的解决方案完全不同。你想在这里回答哪一个问题?从问题中删除另一个-可能问一个不同的问题。因为最后你想用不同的颜色画一条线,我标记为about it的副本。获取该颜色条会有什么问题?我标记为另一个直接使用颜色条的副本。如果您所要的是pcolormesh和LineCollection,则您可以在同一轴上使用pcolormesh和LineCollection。