我正在尝试设置一个颜色条,我知道clim可以做到这一点。我无法弄清楚如何设置它,以使中间彩条值是最小的1,例如范围是1到52?

我这样做是因为我有周数,但是我不想显示从12月到1月的颜色大幅变化(值52和1)

编辑:我正在谈论颜色,以便颜色栏的两端颜色相似,但中间是最不同的颜色。我不想更改颜色栏中的值

最佳答案

您要的是循环色图。到目前为止,matplotlib仅提供一个单一的循环色图,即"hsv"。不过,您可以轻松定义自己的颜色图,并确保它是循环的,例如使用颜色["gold", "red", "black", "navy", "gold"],其中第一种和最后一种颜色相同。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
plt.rcParams['lines.markersize'] = 12

x = np.arange(200)
y = np.ones(200)

fig, ax = plt.subplots()
ax.scatter(x,y, c=x % 52, marker="|" )

ax.scatter(x,y-1, c=x % 52, cmap="hsv", marker="|" )

colors = ["gold", "red", "black", "navy", "gold"]
cmap = mcolors.LinearSegmentedColormap.from_list("", colors)
ax.scatter(x,y-2, c=x % 52, cmap=cmap, marker="|" )

ax.set_yticks([-1,0,1])
ax.set_yticklabels(["custom", "hsv", "viridis", ])
ax.margins(y=0.4)
plt.show()


python - 如何在色条中间设置最低值的连续正色条范围-LMLPHP

关于python - 如何在色条中间设置最低值的连续正色条范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50649556/

10-09 02:25