python - 如何手动定义 Lisa 簇的颜色?

标签 python maps cluster-analysis geopandas pysal

我正在尝试制作一些 LISA CLUSTERS map 。 O 改变了 code lisa_cluster 函数来指定我想要的颜色。我使用了通用的 5 种颜色列表,并手动更改了它

from matplotlib import patches, colors
import palettable

palettable.colorbrewer.sequential.Greys_5_r.colors = [[60,60,60],[105,105,105],[0,0,255],[255,255,0],[240,240,240]]
paleta = palettable.colorbrewer.sequential.Greys_5_r.mpl_colormap

def lisa_cluster(moran_loc, gdf, p=0.05, ax=None,
                 legend=True, legend_kwds=None, **kwargs):
...
 if ax is None:
        figsize = kwargs.pop('figsize', None)
        fig, ax = plt.subplots(1, figsize=figsize)
    else:
        fig = ax.get_figure()

    gdf.assign(cl=labels).plot(column='cl', categorical=True,
                               k=2, cmap=paleta, linewidth=0.1, ax=ax,
                               edgecolor='white', legend=legend,
                               legend_kwds=legend_kwds, **kwargs)
    ax.set_axis_off()
    ax.set_aspect('equal')
    return fig, ax

所以我希望每个象限中的区域具有以下颜色:

1(HH)-黑色
2(HL)-深灰
3(LL)-黄色
4(LH) - 蓝色
不显着-浅灰色

问题是颜色正在合并,我不知道为什么。 我用各自的象限标记了区域以显示 enter image description here

2003 和 2004 都可以。在 2002 年的 map 上,黄色和蓝色(我认为还有蓝色和浅灰色)合并了

最佳答案

解决方案是更改从函数mask_local_auto 导入的对象。 密码是here .

颜色在对象 colors5 中定义:

(...)
#create a mask for local spatial autocorrelation  
cluster = moran_hot_cold_spots(moran_loc, p)

cluster_labels = ['ns', 'HH', 'LH', 'LL', 'HL']
labels = [cluster_labels[i] for i in cluster]

colors5 = {0: 'lightgrey',
           1: '#d7191c',
           2: '#abd9e9',
           3: '#2c7bb6',
           4: '#fdae61'}
colors = [colors5[i] for i in cluster]  # for Bokeh
# for MPL, keeps colors even if clusters are missing:
x = np.array(labels)
y = np.unique(x)
colors5_mpl = {'HH': '#d7191c',
               'LH': '#abd9e9',
               'LL': '#2c7bb6',
               'HL': '#fdae61',
               'ns': 'lightgrey'}
colors5 = [colors5_mpl[i] for i in y]  # for mpl
(...)

关于python - 如何手动定义 Lisa 簇的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56309800/

相关文章:

python - 加速 Numpy 数组切片

python - 正则表达式,先查找 - Python

java - 识别处理中的特定 Blob

matlab - 查找输入模式的簇

python - 迭代一个类型而不实例化它

python - 如何定义一个返回函数之和的函数?

r - 在 R 中创建带有自定义标签的传单 map

安卓 map 十字标记

algorithm - 数聚类/划分算法

R 树状图父子簇