我正在创建一个条形图,其中条形图根据自定义的颜色映射进行着色,以显示数据的额外维度。我使用linearsegmentedcolormap创建颜色。代码看起来像这样
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)
这一切都是我想要的,并产生了我正在寻找的图形。但是,我还想使用linearsegmentedcolormap生成的颜色添加一个colorbar图例。每当我尝试使用plt.colorbar时,如下所示
plt.colorbar(colors)
我得到一个错误声明
AttributeError:“LinearSegmentedColormap”对象没有“自动缩放”属性
我发现的使用linearsegmentedcolormap方法创建自定义colormap的解决方案在图形本身上使用了上述colormap,使用类似plt.imshow的东西。我一直无法找到一个解决方案,其中colormap实际上不用于绘制某些图形
让我们尝试根据颜色创建cmap可映射对象,并从中绘制颜色栏:
输出:
相关问题 更多 >
编程相关推荐