将颜色映射固定为值

时间:2019-11-26 13:02:47

标签: python matplotlib

我在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)

谢谢。

0 个答案:

没有答案