matplotlib三面图中的索引颜色

时间:2014-11-26 00:06:17

标签: python matplotlib graph-coloring

我用一组x,y和z坐标

创建了一个三面图

我想将绘图的颜色索引为一组值,每个顶点计算一次。

问题不在于将这些值映射到颜色值,而是以合理的方式将颜色值分配给面。

在下面的代码中,您可以看到我有四个顶点顶点的x,y,z坐标。我在“vals”中为每个顶点都有一个值,它们以颜色映射到RGB值。

我想为每个面分配定义它的三个顶点的平均颜色。我实际上试图在一个更复杂的多边形上做这个,并且需要能够以编程方式确定哪个“颜色”值要平均以便将它分配给有问题的面。 (即哪些顶点定义哪个面)

或者如果你能想到一种更简单的方法来将面部颜色索引到相邻顶点的值,这将是很好的

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from mpl_toolkits.mplot3d import Axes3D
from numpy import array
verts = array(([1,2,3],[4,5,7],[-1,6,9],[6,7,2])) # X,Y,Z co-ordinates for 4 vertices

vals = array([0.1,0.3,0.5,0.7]) # values calculated for each verex


#map vals to RGB
sm = cm.ScalarMappable()
sm.set_clim(vmin=0,vmax=1)
sm.set_cmap('jet')
colours = sm.to_rgba(vals)

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

ax.plot_trisurf(verts[:,0],verts[:,1],verts[:,2])
plt.show()

0 个答案:

没有答案