我试图用离散颜色条来绘制某些数据。我是按照给出的例子(https://gist.github.com/jakevdp/91077b0cae40f8f8244a),但问题是这个例子不工作1-1不同的间距。例如,链接中示例中的间距仅增加1,但我的数据增加了0.5。你可以看到我的代码输出。 。任何帮助,这将不胜感激。我知道我在这里失去了一些关键,但无法弄清楚。颜色之间具有刻度标签的离散颜色条
import matplotlib.pylab as plt
import numpy as np
def discrete_cmap(N, base_cmap=None):
"""Create an N-bin discrete colormap from the specified input map"""
# Note that if base_cmap is a string or None, you can simply do
# return plt.cm.get_cmap(base_cmap, N)
# The following works for string, None, or a colormap instance:
base = plt.cm.get_cmap(base_cmap)
color_list = base(np.linspace(0, 1, N))
cmap_name = base.name + str(N)
return base.from_list(cmap_name, color_list, N)
num=11
x = np.random.randn(40)
y = np.random.randn(40)
c = np.random.randint(num, size=40)
plt.figure(figsize=(10,7.5))
plt.scatter(x, y, c=c, s=50, cmap=discrete_cmap(num, 'jet'))
plt.colorbar(ticks=np.arange(0,5.5,0.5))
plt.clim(-0.5, num - 0.5)
plt.show()
仅凭这些代码不足以理解你想要达到的目标。你能准确地说出结果的颜色条应该看起来像颜色,颜色数量,标签标签,标签数量?! – ImportanceOfBeingErnest
我只是想让刻度标签与其颜色相关联。例如,每个刻度标签应该位于它们相应的颜色之间。颜色的数量=刻度标签的数量。 –
您选择了11种颜色,值为0到10.这些颜色分布在从蓝色到红色的颜色范围内。如果你现在选择0到5.5之间的标签,那么只有一半的范围会有一个tick标签。这是相当逻辑的。但是,看起来你并不满意。所以再次提出这样的问题:最终的颜色条应该如何在颜色,颜色数量,标签标签,标签数量等方面。那么它应该如何与数据相关(位于0到10之间)? – ImportanceOfBeingErnest