我是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