这个matplotlib图表,能不能把这个螺旋的颜色换一下(就是亮的地方变成暗的,暗的地方变成亮的)

img


看看这个图片,我们来看第一个螺旋,中心是紫的,如何把它变成黄的,并且其他螺旋的颜色都把它们颠倒一下。
这是我的代码


import math as m
import numpy as np 
import matplotlib.pyplot as plt 

def intensity(x, y, R=1.343, lamd=589.3e-9, Delta_d=0):
    r2 = x**2 + y**2
    theta = m.pi*r2/(R*lamd) + (2*m.pi*Delta_d)/lamd
    l, c = np.shape(theta)
    i = np.zeros((l, c))
    i = np.array([[m.sin(theta[i, j]) for j in range(c)] for i in range(l)])
    print('1',i,type(i))
    return i

def CalculateI(width, N):
    x = np.linspace(-width, width, N)
    y = np.linspace(-width, width, N)
    [X, Y] = np.meshgrid(x, y)
    I = intensity(-X, -Y)
    print('2',I,type(I))
    return I 

def MakePlot():
    # 建立子图
    fig = plt.figure()
    ax1 = fig.add_subplot(221)
    ax2 = fig.add_subplot(222)
    ax3 = fig.add_subplot(223)
    ax4 = fig.add_subplot(224)

    # 计算四种环的光强分布
    I1 = CalculateI(0.004, 1000)
    I2 = CalculateI(0.003, 1000)
    I3 = CalculateI(0.002, 1000)
    I4 = CalculateI(0.001, 1000)
    #print(I1,I2,I3,I4)

    # 作图
    ax1.imshow(I1)
    ax2.imshow(I2)
    ax3.imshow(I3)
    ax4.imshow(I4)
    plt.show()

MakePlot()


能帮我改一下吗,谢谢!

可以参照以下代码,(cmap参数: 为调整显示颜色 viridis是一种颜色组合,加_r取反)

    ax1.imshow(I1, cmap=plt.cm.viridis_r)
    ax2.imshow(I2, cmap=plt.cm.viridis_r)
    ax3.imshow(I3, cmap=plt.cm.viridis_r)
    ax4.imshow(I4, cmap=plt.cm.viridis_r)

本人再补充一下
就是中间有一个紫色的点,让他变成黄色,第二圈,是黄色的,让它变成紫色,就这样以此类推,把所有颜色都颠倒一下