【发布时间】:2020-12-16 03:49:15
【问题描述】:
我想显示根据特定值着色的元素(我正在使用 FreeCAD 进行开发),然后使用 matplotlib 作为颜色条绘制图例。 我设法创建了一个从值列表的最小值到最大值的颜色条,但是我不知道如何为列表的每个值设置颜色:
- 10 --> 红色
- 0 --> 绿色
- 2.3 --> ?
现在我的代码是这样的:
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
figure = plt.figure()
canvas = FigureCanvas(figure)
val_max= 10
val_min= 0
ax = figure.add_axes([0.05, 0.10, 0.5, 0.8])
cmap = mpl.cm.RdYlGn.reversed()
norm = mpl.colors.Normalize(vmin=val_min, vmax=val_max)
ticks_cm = np.linspace(val_min, val_max, 10, endpoint=True)
cb1 = mpl.colorbar.ColorbarBase(ax, cmap=cmap,
norm=norm,
ticks=ticks_cm,
orientation='vertical')
canvas.draw()
我很高兴知道是否可以从此渐变中检索一种颜色,该颜色与我的最小值和最大值之间的值相关联。谢谢
【问题讨论】:
标签: python-3.x matplotlib colors gradient