我正在创建一个条形图,其中条形根据自定义颜色图进行着色,以显示额外维度的数据。我使用线性分段颜色图来创建颜色。代码看起来像这样。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)
输出:
添加回答
举报
0/150
提交
取消