簡體   English   中英

Python中的RGB極坐標圖

[英]RGB polar plot in Python

我正在嘗試在Python中生成RGB極坐標圖,我希望matplotlib.pyplot.imshow能夠做到這一點。 但是,每當我嘗試使用此方法繪制數據時,都會獲得空白輸出。

import matplotlib.pyplot as plt
import numpy as np

data = np.array([[[0,0,1],[0,1,0],[1,0,0]],[[0,0,0.5],[0,0.5,0],[0.5,0,0]]])
# Sample, any N,M,3 data should work
ax = plt.subplot(111,polar=True)
ax.imshow(data,extent=[0,2*np.pi,0,1]) # Produces a white circle

是否有使用上述方法或其他方法來完成此操作的好方法?

謝謝。


編輯:我設法通過使用extent=[0,np.pi/2,0,1]來制作一個象限,但對於極坐標圖,它的使用顯然是錯誤的。 因為除了一個完整的象限之外,其他任何事情都無法產生預期的結果。

不幸的是, imshow在極坐標圖上使用imshow ,因為imshow網格的像素必然是二次方的。 但是,您可以使用pcolormesh並應用一個技巧(類似於技巧),即將顏色作為pcolormesh color參數提供,因為通常只需要2D輸入即可。

import matplotlib.pyplot as plt
import numpy as np

data = np.array([[[0,0,1],[0,1,0],[1,0,0]],
                 [[0,0,0.5],[0,0.5,0],[0.5,0,0]]])

ax = plt.subplot(111, polar=True)

#get coordinates:
phi = np.linspace(0,2*np.pi,data.shape[1]+1)
r = np.linspace(0,1,data.shape[0]+1)
Phi,R = np.meshgrid(phi, r)
# get color
color = data.reshape((data.shape[0]*data.shape[1],data.shape[2]))

# plot colormesh with Phi, R as coordinates, 
# and some 2D array of the same shape as the image, except the last dimension
# provide colors as `color` argument
m = plt.pcolormesh(Phi,R,data[:,:,0], color=color, linewidth=0)
# This is necessary to let the `color` argument determine the color
m.set_array(None)


plt.show()

在此處輸入圖片說明

結果不是圓,因為您沒有足夠的點。 重復數據, data = np.repeat(data, 25, axis=1)將允許獲得一個圓。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM