【发布时间】:2022-01-08 16:09:41
【问题描述】:
我一直试图让我的颜色条显示与我的散点图相同的颜色光谱。它不是我的颜色分级数据点的粉红色/紫色到黑色光谱,而是显示颜色条的默认颜色。我在这里阅读了多个其他主题但无济于事,但如果我错过了可以解决我的问题的内容,请提醒我注意类似的主题。
我制作了一个简短的代码来说明我的问题:
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.default_rng()
arr = np.arange(7000)
rng.shuffle(arr)
r = np.sqrt(np.random.random(7000))
theta = np.random.uniform(high = 2*np.pi, size = 7000)
X = np.array(r*np.cos(theta))
Y = np.array(r*np.sin(theta))
def values_to_colormap(values):
values_scale = values/np.max(values)
(a,) = np.shape(values)
cmap = values_scale.reshape(a,1)*np.array([[0.6, 0.4, 0.6]])
return cmap
points_colors = values_to_colormap(arr)
ps = plt.scatter(X,Y, marker = '.', color = points_colors)
plt.colorbar(ps, orientation='horizontal')
plt.axis('equal')
plt.show();
【问题讨论】:
-
建议您使用
scatter:plt.scatter(X, Y, c=arr, marker='.', cmap=cmap, vmin=0, vmax=np.max(arr))的c参数,而不是指定颜色。这将您的问题推到制作颜色图 cmap:matplotlib.org/stable/tutorials/colors/…
标签: python matplotlib scatter-plot colorbar