gpt4 book ai didi

python - 保持不同绘图的颜色缩放相同 - Python

转载 作者:太空宇宙 更新时间:2023-11-03 17:27:34 24 4
gpt4 key购买 nike

我正在使用 Python 和 matplotlib。我正在连续绘制从频谱分析仪获得的一些数据。因此,随着循环的每一个新步骤,我的情节中都会添加一个新片段。

但我刚刚意识到颜色缩放并没有保持不变。因此,有时如果数据略有不同,就会产生全新的缩放:

enter image description here

您可以通过中间的红色大圆圈识别它。红色圆圈的条目值全部为零。因此,通常每个新迭代都应该具有相同的颜色。但正如你所看到的,如果你仔细观察,情况并非如此。有时红色会更深一些。

我已将 vmin 设置为 -100,将 vmax 设置为 0:

 while True: 
... #some code

a = np.linspace( (i*np.pi/8-np.pi/16)%(np.pi*2) ,( i*np.pi/8+np.pi/16)%(np.pi*2) , 2)#Angle, circle is divided into 16 pieces
b = np.linspace(start -scaleplot, stop,801) #points of the frequency + 200 more points to gain the inner circle
A, B = np.meshgrid(a, longzeroarray)

ax.contourf(a, b, B , cmap=cm.jet, vmin=-100, vmax=0)

plt.draw()

希望您能提出一些有用的想法。

最佳答案

您可以指定固定的级别,例如(修改自 doc ):

您不能将 vmaxvminlevels 一起使用,因为前者会覆盖后者。为了解决这个问题,您可以使用屏蔽数组:

import numpy as np
import matplotlib.pyplot as plt

origin = 'lower'
#origin = 'upper'

delta = 0.025

x = y = np.arange(-3.0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = plt.mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = plt.mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10 * (Z1 - Z2)

levels = np.linspace(-3,2,50)
Vmin = -1.
Vmax = 1.
M = np.ma.array(Z, mask=((Z<Vmin)|(Z>Vmax)))

#levels = np.hstack(([Vmin], levels, [Vmax]))

f, (ax1, cax1, ax2, cax2) = plt.subplots(1,4,gridspec_kw={'width_ratios':[9,1,9,1]})
cf1 = ax1.contourf(X, Y, M, levels=levels)
plt.colorbar(cf1, cax=cax1)
cf2 = ax2.contourf(X, Y, M*0.5, levels=levels)
plt.colorbar(cf2, cax=cax2)

enter image description here

关于python - 保持不同绘图的颜色缩放相同 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32354073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com