Python 如何修复polar RGB imshow';什么是xticks?
此代码:Python 如何修复polar RGB imshow';什么是xticks?,python,matplotlib,Python,Matplotlib,此代码: def complex_to_rgb(complex_data, invert=False): from numpy import angle, max, pi, sin, zeros phase = angle(complex_data) amplitude = abs(complex_data) amplitude = amplitude/max(max(amplitude)) A = zeros((complex_data.shape[0], complex_
def complex_to_rgb(complex_data, invert=False):
from numpy import angle, max, pi, sin, zeros
phase = angle(complex_data)
amplitude = abs(complex_data)
amplitude = amplitude/max(max(amplitude))
A = zeros((complex_data.shape[0], complex_data.shape[1], 3))
A[:,:,0] = .5*(sin(phase)+1)*amplitude
A[:,:,1] = .5*(sin(phase+pi/2)+1)*amplitude
A[:,:,2] = .5*(-sin(phase)+1)*amplitude
if(invert):
return 1-A
else:
return A
import numpy as np
from matplotlib.pyplot import figure
N = 1024
x = np.linspace(-1, 1, N)
y = np.linspace(-1, 1, N)
X,Y = np.meshgrid(x,y)
R = np.sqrt(X*X + Y*Y)
PHI = np.arctan2(Y, X)
fig = figure()
ax = fig.add_subplot(212, polar=True)
ax.imshow(complex_to_rgb(R*np.exp(1j*PHI) * (R<1), invert=True))
ax.set_xticks([-.5, 0, np.pi/2, np.pi, 3*np.pi/2])
ax.set_yticks([0, N/3, 2*N/3, N])
ax.set_xticklabels(['', '$0$', r'$\pi/2$', r'$\pi$', r'$3\pi/2$'])
ax.set_yticklabels([])
fig.show()
def complex_to_rgb(complex_数据,反转=False):
从numpy导入角度,max,pi,sin,zero
相位=角度(复数_数据)
振幅=绝对值(复数数据)
振幅=振幅/最大值(最大值(振幅))
A=零((复数数据形状[0],复数数据形状[1],3))
A[:,:,0]=.5*(正弦(相位)+1)*振幅
A[:,:,1]=.5*(正弦(相位+pi/2)+1)*振幅
A[:,:,2]=.5*(-sin(相位)+1)*振幅
如果(反转):
返回1-A
其他:
归还
将numpy作为np导入
从matplotlib.pyplot导入图
N=1024
x=np.linspace(-1,1,N)
y=np.linspace(-1,1,N)
十、 Y=np.meshgrid(X,Y)
R=np.sqrt(X*X+Y*Y)
φ=np.arctan2(Y,X)
图=图()
ax=图add_子批次(212,极坐标=真)
ax.imshow(complex_to_rgb(R*np.exp(1j*PHI)*)(R如中所述,我可以通过指定显式范围到imshow
将径向轴放置在任何我想要的位置。此外,rgrids
可以用于固定刻度标签的角度
def complex_to_rgb(complex_data, invert=False):
from numpy import angle, max, pi, sin, zeros
phase = angle(complex_data)
amplitude = abs(complex_data)
amplitude = amplitude/max(max(amplitude))
A = zeros((complex_data.shape[0], complex_data.shape[1], 3))
A[:,:,0] = .5*(sin(phase)+1)*amplitude
A[:,:,1] = .5*(sin(phase+pi/2)+1)*amplitude
A[:,:,2] = .5*(-sin(phase)+1)*amplitude
if(invert):
return 1-A
else:
return A
import numpy as np
from matplotlib.pyplot import figure
N = 1024
x = np.linspace(-1, 1, N)
y = np.linspace(-1, 1, N)
X,Y = np.meshgrid(x,y)
R = np.sqrt(X*X + Y*Y)
PHI = np.arctan2(Y, X)
fig = figure()
ax = fig.add_subplot(111, polar=True)
ax.imshow(complex_to_rgb(R*np.exp(1j*PHI) * (R<1), invert=True), extent=[0,2*np.pi, 0,1024])
ax.set_rgrids([1,N/3,2*N/3], angle=45)
ax.set_xticks([0, np.pi/2, np.pi, 3*np.pi/2])
ax.set_yticks([0, N/3, 2*N/3, N])
ax.set_xticklabels([r'$0$', r'$\pi/2$', r'$\pi$', r'$3\pi/2$'])
ax.set_yticklabels([r'0', r'$1/3$', r'$2/3$', '1'])
fig.show()
def complex_to_rgb(complex_数据,反转=False):
从numpy导入角度,max,pi,sin,zero
相位=角度(复数_数据)
振幅=绝对值(复数数据)
振幅=振幅/最大值(最大值(振幅))
A=零((复数数据形状[0],复数数据形状[1],3))
A[:,:,0]=.5*(正弦(相位)+1)*振幅
A[:,:,1]=.5*(正弦(相位+pi/2)+1)*振幅
A[:,:,2]=.5*(-sin(相位)+1)*振幅
如果(反转):
返回1-A
其他:
归还
将numpy作为np导入
从matplotlib.pyplot导入图
N=1024
x=np.linspace(-1,1,N)
y=np.linspace(-1,1,N)
十、 Y=np.meshgrid(X,Y)
R=np.sqrt(X*X+Y*Y)
φ=np.arctan2(Y,X)
图=图()
ax=图add_子批次(111,极坐标=真)
ax.imshow(complex_to_rgb(R*np.exp(1j*PHI)*)(RWell,我发现了一种使用奇数刻度作为R刻度线的方法,但Matplotlib 1.3.1强迫我使用。我还发现了一种替代的非私有方法来做同样的事情。