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强迫我使用。我还发现了一种替代的非私有方法来做同样的事情。