【发布时间】:2015-11-11 00:48:15
【问题描述】:
在 MATLAB 中,可以使用fill 命令在节点中定义的颜色绘制填充的多边形(例如 2 个三角形):
x = [0 1 1; 0 1 0]';
y = [0 0 1; 0 1 1]';
z = [0 1 2; 0 2 3]';
fill(x,y,z)
在matplotlib 中是否有等效的命令或其他方便的方法来执行相同的操作?
【问题讨论】:
-
我看到了,那个问题。但是,据我了解,该函数以相同的颜色绘制整个多边形?在 MATLAB 中,可以指定角的颜色,以便中间的颜色是渐变的,如示例中所示。
-
那么你的真实数据到底是什么样的?我只发现
matplotlib.imshow可以在你的脸上进行插值,但假设一个矩形网格为x和y... -
基本上我在网格中有元素(在本例中为三角形),具有节点值。很像上面的例子。可以将数据转换为每个节点的坐标数据(比如向量
X,Y),节点值在向量Z中。也许这可以更容易地绘制?没有必要绘制实际元素。 -
非常如此。如果
x和y在网格上,如x,y=numpy.meshgrid(xarr,yarr),并且z再次在该网格上定义,可能是x和y的函数,那么matplotlib.imshow(z,interpolation='bilinear',extent=...会做一些事情非常相似。但是您需要一个等距网格,因为imshow是为绘制图像而设计的,并将您的数据解释为像素(并且可能会翻转坐标轴)。不幸的是,我找不到另一个能够进行内部插值的函数。
标签: python matlab matplotlib