如何在Python中从线性分段颜色图创建颜色条?

我正在创建一个条形图,其中条形根据自定义颜色图进行着色,以显示额外维度的数据。我使用线性分段颜色图来创建颜色。代码看起来像这样。


import matplotlib.pyplot as plt

import matplotlib.colors as mcolors


xvalues = [1,2,3,4]

yvalues = [1,2,3,4]

colorvalues = [0,0.3,0.6,0.99]


clist = [(0, 'powderblue'), (1, 'darkblue')]

colors = mcolors.LinearSegmentedColormap.from_list("", clist)


barcolors = []

for value in colorvalues:

    barcolors.append(colors(value))


fig, ax = plt.subplots()

ax.bar(xvalues, yvalues, color = barcolors) 


这一切都按照我想要的方式工作并生成我正在寻找的图表。但是,我还想使用线性分段颜色图生成的颜色添加颜色条图例。每当我尝试使用 plt.colorbar 时,如下所示


plt.colorbar(colors)

我收到一条错误消息

AttributeError: 'LinearSegmentedColormap' 对象没有属性 'autoscale_None'


我发现使用 Linearsegmentedcolormap 方法创建自定义颜色图的解决方案已使用诸如 plt.imshow 之类的图形本身上的所述颜色图。我一直无法找到颜色图实际上并未用于绘制某些内容的解决方案。


BIG阳
浏览 52回答 1
1回答

湖上湖

让我们尝试根据您的颜色创建一个 cmap 可映射对象并从中绘制颜色条:## you other codes go herefrom matplotlib.cm import ScalarMappablefrom matplotlib.colors import Normalizecmappable = ScalarMappable(norm=Normalize(0,1), cmap=colors)plt.colorbar(cmappable)输出:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python