m0_62382446 2022-05-03 19:14 采纳率: 100%
浏览 34
已结题

这个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()


能帮我改一下吗,谢谢!

  • 写回答

2条回答 默认 最新

  • blackoon88 2022-05-03 21:46
    关注

    可以参照以下代码,(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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月12日
  • 已采纳回答 5月4日
  • 创建了问题 5月3日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看