调整 matplotlib 颜色图以显示模拟
Adjusting matplotlib colormap to show simulation
我正在根据这个实验构建一个小模拟:
https://www.youtube.com/watch?v=plVk4NVIUh8 ,它显示了细菌随时间的演变。
我在培养皿边缘初始化了一些具有随机抗性的细菌:
随着细菌的传播,与未被占据的space的对比越来越小,经过100代后变成了这样:
我用plt.matshow(Map)做图,其中Map是一个二维numpy数组,有细菌抗性值(总是大于0),非占用的space表示为0. 我尝试了不同的颜色映射,但没有帮助。我的目标是让非占用 space 一些恒定的深色,
被感染的space有些浅色,对比一下电阻值的不同。
你能帮我吗?
对于低值,例如 'magma',您可以获得深色的 colormap 并定义,正如 Andreas 建议的 'vmin' 值。例如
import matplotlib.pyplot as plt
from scipy import rand
a = rand(10, 20) + 0.5
a[0, 0] = 0
cmap = plt.get_cmap('magma')
img = plt.pcolormesh(a, cmap=cmap, vmin=0,)
img.figure.show()
干杯!
S
我能够使用对数归一化使可视化效果更好:假设我的 bacteriaMap 具有完全不同的电阻值:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
size=10
a = rand(size, size) * 0.2
b = rand(size, size) * 2
c = rand(size, size) * 20
sumMap = np.concatenate((a,b,c), axis=1)
sumMap 是要绘制的 numpy 数组,有小号、中号和大号。
构建颜色图和标准化器:
maxval=np.max(sumh)
minval=np.min(sumh)
colormap = plt.get_cmap('magma')
norm = mpl.colors.LogNorm(vmax=maxval, vmin=minval)
如果我使用标准化,地图会像这样:
img = plt.pcolormesh(sumh, cmap=colormap, norm=norm)
img.figure.show()
如果我不这样做:
img = plt.pcolormesh(sumh, cmap=cmap, )
img.figure.show()
我正在根据这个实验构建一个小模拟: https://www.youtube.com/watch?v=plVk4NVIUh8 ,它显示了细菌随时间的演变。
我在培养皿边缘初始化了一些具有随机抗性的细菌:
随着细菌的传播,与未被占据的space的对比越来越小,经过100代后变成了这样:
我用plt.matshow(Map)做图,其中Map是一个二维numpy数组,有细菌抗性值(总是大于0),非占用的space表示为0. 我尝试了不同的颜色映射,但没有帮助。我的目标是让非占用 space 一些恒定的深色, 被感染的space有些浅色,对比一下电阻值的不同。
你能帮我吗?
对于低值,例如 'magma',您可以获得深色的 colormap 并定义,正如 Andreas 建议的 'vmin' 值。例如
import matplotlib.pyplot as plt
from scipy import rand
a = rand(10, 20) + 0.5
a[0, 0] = 0
cmap = plt.get_cmap('magma')
img = plt.pcolormesh(a, cmap=cmap, vmin=0,)
img.figure.show()
干杯! S
我能够使用对数归一化使可视化效果更好:假设我的 bacteriaMap 具有完全不同的电阻值:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
size=10
a = rand(size, size) * 0.2
b = rand(size, size) * 2
c = rand(size, size) * 20
sumMap = np.concatenate((a,b,c), axis=1)
sumMap 是要绘制的 numpy 数组,有小号、中号和大号。 构建颜色图和标准化器:
maxval=np.max(sumh)
minval=np.min(sumh)
colormap = plt.get_cmap('magma')
norm = mpl.colors.LogNorm(vmax=maxval, vmin=minval)
如果我使用标准化,地图会像这样:
img = plt.pcolormesh(sumh, cmap=colormap, norm=norm)
img.figure.show()
如果我不这样做:
img = plt.pcolormesh(sumh, cmap=cmap, )
img.figure.show()