调整matplotlib colormap以显示模拟

2024-10-01 19:30:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这个实验的基础上做了一个小的模拟: https://www.youtube.com/watch?v=plVk4NVIUh8,它显示了细菌随时间的进化。你知道吗

我在培养皿边缘初始化了一些随机耐药的细菌:

enter image description here

随着细菌的扩散,与未被占据的空间形成的对比越来越小,经过100代之后,它变成这样: enter image description here

我用plt.matshow公司(Map)要制作图片,Map是一个2D numpy数组,细菌抗性值(总是大于0),非占用空间表示为0。我试过不同的颜色图,但没用。我的目标是让没有被占用的空间保持不变的深色, 感染的空间有些浅色,用康泰来注意电阻值的不同。你知道吗

你能帮我吗?你知道吗


Tags: httpscommapyoutubewww时间空间plt
2条回答

使用对数标准化,我能够使可视化效果更好:假设我的bacteriaMap有不同的resistancevalue:

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

enter image description here

如果我没有:

img = plt.pcolormesh(sumh, cmap=cmap,  )
img.figure.show()

enter image description here

对于较低的值,比如'magma',可以得到一个colormap带深色的值,并按照Andreas的建议定义一个'vmin'值。e、 g

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

enter image description here

干杯! S码

相关问题 更多 >

    热门问题