创建一个不对称的颜色图
create an asymmetric colormap
我正在为 map colors in a folium choropleth map, using code from here:
创建颜色映射
from branca.colormap import linear
colormap = linear.RdBu.scale(
df.MyValue.min(),
df.MyValue.max())
colormap
如您所见,最小值和最大值与 0 相比有偏差,我希望这反映在颜色图中,即只有 < 0 的值应映射为红色,而所有正值应该映射到蓝色。
有没有办法让颜色图中出现这种不对称?我在网上看到的例子不多。
我这样做:
colormap = colormap.to_step(index=[-200, 0, 1200])
但并不顺利:
如果你想要不对称的色标(在文档中称为不规则),你可以设置索引。示例:
import branca.colormap as cm
colormap = cm.LinearColormap(colors=['red','blue'], index=[-200,0],vmin=-200,vmax=1200)
colormap
转换将由您的索引给出。例如,这些是其他转换:
colormap = cm.LinearColormap(colors=['red','blue'], index=[0,200],vmin=-200,vmax=1200)
colormap
添加第三种颜色:
colormap = cm.LinearColormap(colors=['red','lightblue','blue'], index=[-200,0,1200],vmin=-200,vmax=1200)
colormap
MPL 已经内置了 TwoSlopeNorm
class: https://matplotlib.org/stable/tutorials/colors/colormapnorms.html?highlight=twoslopenorm#twoslopenorm-different-mapping-on-either-side-of-a-center
我正在为 map colors in a folium choropleth map, using code from here:
创建颜色映射from branca.colormap import linear
colormap = linear.RdBu.scale(
df.MyValue.min(),
df.MyValue.max())
colormap
如您所见,最小值和最大值与 0 相比有偏差,我希望这反映在颜色图中,即只有 < 0 的值应映射为红色,而所有正值应该映射到蓝色。
有没有办法让颜色图中出现这种不对称?我在网上看到的例子不多。
我这样做:
colormap = colormap.to_step(index=[-200, 0, 1200])
但并不顺利:
如果你想要不对称的色标(在文档中称为不规则),你可以设置索引。示例:
import branca.colormap as cm
colormap = cm.LinearColormap(colors=['red','blue'], index=[-200,0],vmin=-200,vmax=1200)
colormap
转换将由您的索引给出。例如,这些是其他转换:
colormap = cm.LinearColormap(colors=['red','blue'], index=[0,200],vmin=-200,vmax=1200)
colormap
添加第三种颜色:
colormap = cm.LinearColormap(colors=['red','lightblue','blue'], index=[-200,0,1200],vmin=-200,vmax=1200)
colormap
MPL 已经内置了 TwoSlopeNorm
class: https://matplotlib.org/stable/tutorials/colors/colormapnorms.html?highlight=twoslopenorm#twoslopenorm-different-mapping-on-either-side-of-a-center