首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >matplotlib中的小散点图标记始终为黑色

matplotlib中的小散点图标记始终为黑色
EN

Stack Overflow用户
提问于 2011-06-28 15:46:45
回答 3查看 66.4K关注 0票数 54

我正在尝试使用matplotlib来制作一个带有非常小的灰色点的散点图。由于点密度的原因,点需要很小。问题是scatter()函数的标记似乎既有一条线,又有一个填充。当标记很小时,只有线条可见,而不是填充,并且线条的颜色不正确(始终是黑色)。

我可以使用gnuplot精确地得到我想要的东西:使用pt 0 lc rgb 'gray‘绘制节点’

如何使用matplotlib散点图()制作非常小的灰色点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-28 20:00:23

代码语言:javascript
复制
scatter([1,2,3], [2,4,5], s=1, facecolor='0.5', lw = 0)

这会将标记大小设置为1 (s=1),将面颜色设置为灰色( facecolor ='0.5'),并将线宽设置为0 (lw=0)。

票数 70
EN

Stack Overflow用户

发布于 2011-10-24 17:30:15

如果标记没有面(不能填充,例如'+''x'),则必须设置edgecolor而不是c,并且lw不应为0

代码语言:javascript
复制
scatter([1,2,3], [2,4,5], marker='+', edgecolor='r')

下面的代码将不起作用

代码语言:javascript
复制
scatter([1,2,3], [2,4,5], s=1,  marker='+', facecolor='0.5', lw = 0)

因为不会显示边/线,所以不会显示任何内容。

票数 30
EN

Stack Overflow用户

发布于 2016-12-30 09:21:22

为了回答zwol在评论中的问题--我的声誉不足以留下评论,所以这将不得不这样做:如果你的颜色来自色彩映射表(即,来自“要映射的值序列”),你可以使用color =,如下所示:

代码语言:javascript
复制
from matplotlib import pyplot

x = [1,5,8,9,5]
y = [4,2,4,7,9]
numSides = [2,3,1,1,5]

cmap = pyplot.cm.get_cmap("copper_r")

min, max = min(numSides), max(numSides)
for i in range(len(x)):
    if numSides[i] >= 2:
        cax = pyplot.scatter(x[i], y[i], marker = '+', s = 100, c = numSides[i], cmap = cmap)
        cax.set_clim(min, max)
    elif numSides[i] == 1:
        pyplot.scatter(x[i], y[i], marker = '.', s = 40, color = cmap(numSides[i]))

fig = pyplot.gcf()
fig.set_size_inches(8.4, 6)
fig.savefig('figure_test.png', dpi = 200)
pyplot.show()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6503241

复制
相关文章

相似问题

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