【问题标题】:Color filled sequence of rectangles using custom gradient [duplicate]使用自定义渐变填充颜色的矩形序列[重复]
【发布时间】:2017-12-20 20:35:43
【问题描述】:

我正在尝试使用 matplotlib 在 Python 中创建一个带有自定义注释的颜色渐变矩形。以下是根据值分配颜色的功能。我正在尝试创建一个标签以供参考(显示颜色分数的矩形)。 我正在寻找这样的东西:https://stackoverflow.com/a/25679063/7733184 用于我的颜色,但也根据我的功能指定范围。

def returncolor(value,colors):
    if value < 0.55:
        return '#B03A2E' #darkest red
    if value < 0.60:
        return '#EC7063' # light red
    if value < 0.65:
        return '#FCF3CF' # lighest yellow
    if value < 0.70:
        return '#F1C40F' # yellow
    if value < 0.75:
        return '#F39C12' # Orange
    if value < 0.80:
        return '#82E0AA'#light green
    if value < 0.85:
        return '#28B463'#dark green
    if value < 0.90:
        return '#7FB3D5'#light blue
    if value < 0.95:
        return '#2980B9'#dark blue
    if value < 1:
        return '#5B2C6F'#dark blue

我正在尝试做的模型如下:

【问题讨论】:

  • 您可能希望在您的问题中添加一个模型图像以指示输出的外观。
  • @DizietAsahi 不完全一样,这不是渐变。这些是自定义颜色。

标签: python matplotlib


【解决方案1】:

根据the answer to this question,您可以使用ListedColormap 对象定义自定义颜色图。

colors = ['#B03A2E','#EC7063','#FCF3CF','#F1C40F','#F39C12','#82E0AA','#28B463','#7FB3D5','#2980B9','#5B2C6F']
bounds = [0.5,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1]
cmap = matplotlib.colors.ListedColormap(colors)
norm = matplotlib.colors.BoundaryNorm(bounds, cmap.N)

zvals = np.random.rand(100, 100) * 10

# tell imshow about color map so that only set colors are used
img = plt.imshow(zvals, cmap=cmap, norm=norm)

# make a color bar
plt.colorbar(img, cmap=cmap, norm=norm, boundaries=bounds, ticks=bounds)

plt.show()

另请参阅 matplotlib 文档中的 the example

【讨论】:

  • 其实我只是在寻找右边的刻度。不是 zvals 或随机图。
猜你喜欢
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2014-01-31
  • 1970-01-01
  • 2023-03-19
  • 2015-12-21
相关资源
最近更新 更多