首页 > 解决方案 > 将颜色图固定为值

问题描述

我在 matplotlib 中有一个随时间变化的数据图 - 我在图表中的一个功能是基于从 32.5 到 50 的值具有气泡颜色。为了清楚起见,我对其进行了标准化,因此值在范围内[0, 1]。

norm = matplotlib.colors.Normalize(32.5, 50)
colors = [[norm(32.5), "red"],
          [norm(40), "salmon"],
          [norm(42.5), "yellow"],
          [norm(45), "limegreen"],
          [norm(47.5), "green"],
          [norm(50), "darkgreen"]]

my_cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", colors)

dix_array = np.array(df_sel['DIX 10MA'])
normalized_dix = (dix_array - min(dix_array)) / (max(dix_array) - min(dix_array))

我遇到的问题是气泡颜色会根据我选择的时间范围而变化——颜色图不是直接分配给值的,而是根据图表上选择的值进行相对映射。有没有办法保持这样的事情,例如,无论我选择多长时间,45 的值都将是石灰绿色?

fig, axes = plt.subplots(ncols=10, nrows=8, figsize=(16, 9))
.
.
axbig1.scatter(number_index, df_sel["SPYClose"], s=normalized_gex*500, c=normalized_dix, cmap=my_cmap)

谢谢。

标签: pythonmatplotlib

解决方案


推荐阅读