我是Python
和matplotlib
的新手,我最近引用了THIS来更新我的tripcolor
图。随着下面的数据准备set_array()in tripcolor bug?
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.tri as tri
import math
r = np.zeros((100,100))
t = np.zeros((100,100))
for i in range(0,100):
for j in range(0,100):
r[i,j]=i
t[i,j]=2*math.pi*j/100
x=r*np.cos(t)
y=r*np.sin(t)
z=r*r
xf=x.flatten()
yf=y.flatten()
zf=z.flatten()
triang = tri.Triangulation(xf,yf)
如果我使用tripcolor
,因为它的目的是,
# Works well
p = plt.tripcolor(triang, zf)
correct figure出现。但是,如果我尝试创建tripcolor
后更新,
# Not working well
p = plt.tripcolor(triang, xf)
p.set_array(zf)
然后,wrong figure出现。 xf
和zf
都具有相同的尺寸。
我在做什么错?问题的原因是什么,我该如何避免它?
非常感谢提前。
============================================== ===========
更新
谢谢大家。我真的解决了我自己。
的关键是,我需要分配颜色对每个区域,通过shading
参数控制的,并且用于tripcolor
默认值是'flat'
,这一点,颜色为每个顶点。所以,当我绘制第一个数字时,我需要确定着色是'gouraud'
,它为每个区域分配颜色。
所以,
p = plt.tripcolor(triang, xf, shading='gouraud')
p.set_array(zf)
作品我打算。
因为显然链接的文章对你有些帮助,你可以(也应该?)upvote在那里发布的答案......即使它只对你有帮助,但并没有解决你的问题。 – rll
@rll我做了upvote,但由于我的声誉很低,我被告知,我的反馈并没有显示给其他人。 –
对不起,我的不好:)然后我正在阅读你的问题更多的关注,你有没有尝试重新设置数组后? – rll