为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2023-11-09 21:26:05
我正在创建一个条形图,其中条形根据自定义颜色图进行着色,以显示额外维度的数据。我使用线性分段颜色图来创建颜色。代码看起来像这样。import matplotlib.pyplot as pltimport matplotlib.colors as mcolorsxvalues = [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 之类的图形本身上的所述颜色图。我一直无法找到颜色图实际上并未用于绘制某些内容的解决方案。
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

让我们尝试根据您的颜色创建一个 cmap 可映射对象并从中绘制颜色条:


## you other codes go here


from matplotlib.cm import ScalarMappable

from matplotlib.colors import Normalize

cmappable = ScalarMappable(norm=Normalize(0,1), cmap=colors)

plt.colorbar(cmappable)

输出:

https://img1.sycdn.imooc.com/654cde0a0001b9a903510248.jpg

查看完整回答
反对 回复 2023-11-09
  • 1 回答
  • 0 关注
  • 48 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信