我想使用matplotlib.pyplot.scatter绘制散点图,并且由于点的数量太大,因此我想减小这些点的比例。我将参数s设置为0.1,点以某种方式变为以点为中心的空圆。
下面是s=0.1,空点



但是我只想要实心点,经过一番尝试,我发现原因是参数s,当> = 1时,图是实心点,但是当s 下面是s,实心点


下面是我的代码,我只是更改了参数s=1

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as mcm

if __name__ == "__main__":
    a = np.random.rand(10000,2)
    fig = plt.figure(figsize=(6,6), dpi=800)
    ax = fig.add_subplot(111)
    color = np.random.rand(10000,)
    ax.scatter(a[:,0],a[:,1], s=1, marker='.', c=color, cmap=mcm.jet)
    plt.savefig("`some route`/123.png", format="png")


我的版本:
的Python:3.7.3
matplotlib:3.0.3
操作系统:Ubuntu 16.04 LTS

最佳答案

您应该设置edgecolors='none
我认为您可以通过以下方式获得所需的内容:ax.scatter(a[:,0],a[:,1], s=0.5, marker='o', c=color, cmap=mcm.jet, edgecolors='none')

https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.scatter.html处查看scatter的文档

关于python - 在`matplotlib`,`scatter`中,当参数`s` <1时,圆圈变为空,为什么会发生这种情况?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57901317/

10-12 07:04