使用自定义cmap的matplotlib散点图-颜色不正确

赚钱的

因此,我正在按照一种模式为散点图创建自定义颜色图和cbar。我正在创建4个子图,每个子图覆盖用于赋予点颜色的参数的不同范围。该参数的取值范围是1e-10到1.0。

我执行以下操作:

cmap = plt.cm.jet
# extract all colors from the .jet map
cmaplist = [cmap(i) for i in range(cmap.N)]
# force the first color entry to be grey
cmaplist[0] = (.5,.5,.5,1.0)
# create the new map
cmap = cmap.from_list('Custom cmap', cmaplist, cmap.N)

# define the bins and normalize
bounds = np.linspace(-10,0,11)
norm   = mpl.colors.BoundaryNorm(bounds, cmap.N)
...
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row', figsize=(20,20))
...
ax1.scatter(xcoord[rng1], ycoord[rng1], s=massFilt[rng1]/dotNorm,
                    c=np.ma.log10(Zfilt[rng1]), cmap=cmap)
ax2.scatter(xcoord[rng2],ycoord[rng2], s=massFilt[rng2]/dotNorm,
                    c=np.ma.log10(Zfilt[rng2]), cmap=cmap)
ax3.scatter(xcoord[rng3], ycoord[rng3], s=massFilt[rng3]/dotNorm,
                    c=np.ma.log10(Zfilt[rng3]), cmap=cmap)
ax4.scatter(xcoord[rng4], ycoord[rng4], s=massFilt[rng4]/dotNorm,
                    c=np.ma.log10(Zfilt[rng4]), cmap=cmap)

其中rng被定义为

rng1 = (Zfilt < 2.e-7)
rng2 = ((Zfilt >= 2.e-7) & (Zfilt < 1.e-4))
rng3 = ((Zfilt >= 1.e-4) & (Zfilt < 1.e-2))
rng4 = (Zfilt >= 1.e-2)

因此,第一个面板仅包括那些小于2e-7的点,并且所有点都正确着色了……我已经验证了过滤器是否正常工作:例如Zfilt [rng4]仅包含Zfilt> 1e-2的点。 ,但不知何故,我看到在RNG2和rng3颜色应该仅用于RNG1 !! ?? 见附件。

有任何想法吗?我究竟做错了什么?

面板2(右上)中的所有点都小于1e-4,应为绿色,蓝色或灰色...不是红色?

这是Zfilt [rng2]的示例-

Z values rng2  [-4.23451696 -4.35974369 -5.18479833 -6.17304647 -4.48839191 -5.16774006
 -4.12047222 -6.11491263 -5.81392662 -4.6491248  -4.75038775 -5.06640103
 -4.20821705 -4.12556725 -4.58661378 -4.17023495 -5.40845781 -4.54981553
 -5.82830048 -4.11185471 -4.43155534 -6.17025186 -4.88154584 -5.00024704
 -4.13626926 -5.57797731 -6.0617742  -5.33182163 -5.44963247 -5.88409509
 -6.16903327 -5.70808154 -4.88578943 -4.00873256 -4.1457824  -4.45174817
 -5.43829583 -4.32470978 -4.11634754 -5.1141915  -5.13310282 -4.15469421
...
离开

scatter()不了解数据的假定范围,因此它将颜色图应用于所看到的整个范围,即从所提供数组的最小值到最大值。由于您想要不同的行为(所有子图的范围相同,而与数据无关),因此需要通过vminvmax参数显式指定范围

ax1.scatter(xcoord[rng1], ycoord[rng1], s=massFilt[rng1]/dotNorm,
                c=np.ma.log10(Zfilt[rng1]), cmap=cmap,
                vmin=-10, vmax=0)
ax2.scatter(xcoord[rng2],ycoord[rng2], s=massFilt[rng2]/dotNorm,
                c=np.ma.log10(Zfilt[rng2]), cmap=cmap,
                vmin=-10, vmax=0)
# etc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 UITextfield 中,当使用 NSMutableAttributedString 应用颜色时,未聚焦时颜色应用不正确

来自分类Dev

在Windows 7-Parallels(Inno脚本)上,自定义向导页面上控件的颜色不正确

来自分类Dev

变量定义不正确

来自分类Dev

使用EPPlus创建的Excel图表中的图例颜色不正确

来自分类Dev

使用PuTTY时在Linux终端中颜色显示不正确

来自分类Dev

将tmux与白蚁一起使用时端子颜色看起来不正确

来自分类Dev

leafletjs自定义标记位置不正确

来自分类Dev

C ++ CMenu绘制不正确(非自定义)

来自分类Dev

自定义复选框不正确

来自分类Dev

Jekyll自定义变量输出不正确的值

来自分类Dev

Android自定义AlertDialog绘制不正确

来自分类Dev

android自定义组视图布局不正确

来自分类Dev

按钮的自定义背景设置不正确

来自分类Dev

spaCy:自定义属性匹配不正确?

来自分类Dev

ListView 自定义项在图形上不正确

来自分类Dev

Mapbox 自定义样式显示不正确

来自分类Dev

Python / Matplotlib:带有contourf的颜色栏不遵守自定义cmap的刻度标签

来自分类Dev

使用自定义列表视图适配器和不同布局的结果不正确

来自分类Dev

matplotlib中的直方图工作不正确

来自分类Dev

Matplotlib MLAB熵计算不正确?

来自分类Dev

matplotlib 上的 PDF 绘图不正确

来自分类Dev

APP_ROOT定义不正确

来自分类Dev

scilab子矩阵定义不正确

来自分类Dev

未定义的索引不正确

来自分类Dev

Laravel迁移不正确的表定义

来自分类Dev

JAVA_HOME定义不正确

来自分类Dev

$作用域定义不正确

来自分类Dev

APP_ROOT定义不正确

来自分类Dev

vuejs 组件定义不正确