首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何根据matplotlib中的颜色映射对散点进行着色?

如何根据matplotlib中的颜色映射对散点进行着色?
EN

Stack Overflow用户
提问于 2012-08-09 21:55:06
回答 3查看 22.4K关注 0票数 19

我正在尝试根据从已经定义的颜色贴图中挑选的一组值(从0到1)对散点图中的点进行着色,比如Blues或Red。我试过这个:

代码语言:javascript
复制
import matplotlib
import matplotlib.pyplot as plt
from numpy import *
from scipy import *
fig = plt.figure()
mymap = plt.get_cmap("Reds")
x = [8.4808517662594909, 11.749082788323497, 5.9075039082855652, 3.6156231827873615, 12.536817102137768, 11.749082788323497, 5.9075039082855652, 3.6156231827873615, 12.536817102137768]
spaced_colors = linspace(0, 1, 10)
print spaced_colors
plt.scatter(x, x,
            color=spaced_colors,
            cmap=mymap)
# this does not work either
plt.scatter(x, x,
            color=spaced_colors,
            cmap=plt.get_cmap("gray"))

但是,无论是使用红色还是灰色映射表,它都不起作用。如何做到这一点?

编辑:如果我想单独绘制每个点,这样它就可以有一个单独的图例,我该怎么做呢?我试过了:

代码语言:javascript
复制
fig = plt.figure()
mymap = plt.get_cmap("Reds")
data = np.random.random([10, 2])
colors = list(linspace(0.1, 1, 5)) + list(linspace(0.1, 1, 5))
print "colors: ", colors
plt.subplot(1, 2, 1)
plt.scatter(data[:, 0], data[:, 1],
           c=colors,
           cmap=mymap)
plt.subplot(1, 2, 2)
# attempt to plot first five points in five shades of red,
# with a separate legend for each point
for n in range(5):
    plt.scatter([data[n, 0]], [data[n, 1]],
               c=[colors[n]],
               cmap=mymap,
               label="point %d" %(n))
plt.legend()

但它失败了。我需要为每个点调用scatter,以便它可以有一个单独的label=,但仍然希望每个点具有不同的颜色映射图阴影作为其颜色。谢谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11885060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档