Python 3.x MatPlotLib修改自定义线性分段颜色贴图

Python 3.x MatPlotLib修改自定义线性分段颜色贴图,python-3.x,matplotlib,Python 3.x,Matplotlib,关于对以下内容的认可回复: 如果我想使用3种或更多不同的定制颜色,该怎么办?是否可以轻松编辑LinearSegmentedColormap 这适用于2: import numpy as np import geopandas as gpd import matplotlib.pyplot as plt from matplotlib.colors import LinearSegmentedColormap shpfile = 'cb_2015_us_county_20m.shp' c = g

关于对以下内容的认可回复:

如果我想使用3种或更多不同的定制颜色,该怎么办?是否可以轻松编辑LinearSegmentedColormap

这适用于2:

import numpy as np
import geopandas as gpd
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

shpfile = 'cb_2015_us_county_20m.shp'
c = gpd.read_file(shpfile)
c = c.loc[c['GEOID'].isin(['26161','26093','26049','26091','26075',
                           '26125','26163','26099','26115','26065'])]

c['color'] = np.zeros(len(c))
# 23 is index for Washtenaw county and 1992 is index for Wayne county
c.ix[23, 'color'] = 1.0
c.ix[1992, 'color'] = 1.0

# create simple linear colormap that maps grey to blue
cmap = LinearSegmentedColormap.from_list(
    'mycmap', [(0, 'grey'), (1, 'blue')])

c.plot(column='color', cmap=cmap)
对于3,我尝试:

cmap = LinearSegmentedColormap.from_list(
    'mycmap', [(0, 'grey'), (0.5, 'red'), (1, 'blue')])

提前谢谢

我不明白为什么这在python 3中不起作用?出了什么问题?不要忘记,如果希望县开始显示为不同的颜色,则必须更新
c['color']
中的值。对不起,我的数据框中没有表示所有值(只有0.5和1,没有零)。因此,如果将0设置为灰色,0.5设置为红色,1设置为蓝色,并且在颜色列中只有0.5和1个值,它将0.5的行绘制为灰色而不是红色,我假设这是列中最小的数字。有没有办法使其更绝对,因此无论颜色列中存在什么范围的值,0.5始终以红色打印?没问题。if-elif解决方案对我来说非常好。谢谢查看
set\u over
set\u under
,也可以查看
set\u bad
。这种方法正是我认为你想要的。这里有一些例子(例如),但是如果你仍然有问题,你可以编辑这个问题或者发布一个新的问题。祝你好运我不明白为什么这在python 3中不起作用?出了什么问题?不要忘记,如果希望县开始显示为不同的颜色,则必须更新
c['color']
中的值。对不起,我的数据框中没有表示所有值(只有0.5和1,没有零)。因此,如果将0设置为灰色,0.5设置为红色,1设置为蓝色,并且在颜色列中只有0.5和1个值,它将0.5的行绘制为灰色而不是红色,我假设这是列中最小的数字。有没有办法使其更绝对,因此无论颜色列中存在什么范围的值,0.5始终以红色打印?没问题。if-elif解决方案对我来说非常好。谢谢查看
set\u over
set\u under
,也可以查看
set\u bad
。这种方法正是我认为你想要的。这里有一些例子(例如),但是如果你仍然有问题,你可以编辑这个问题或者发布一个新的问题。祝你好运