Plots画空心点

Plots画散点图怎么把图形设置成空心的啊,画出来的都是实心的

using Plots

plot(1:10, 1:10, seriestype = :scatter)

首先了解一下绘制散点图的一些相关名词,marker*. 官方文档给了一张表 Series Attributes · Plots (juliaplots.org),虽然不是很美观,但是列举了所有目前可以调的参数。

具体到你的问题,一个点包括很多参数,比如中心位置、形状、填充颜色、边缘颜色、边缘粗细、透明度等等。

using Plots # default gr() backend

y = [1,2,3]
scatter(y,
   markershape = :hexagon,
   markersize = 20,
   markeralpha = 0.6,
   markercolor = :white,
   markerstrokewidth = 3,
   markerstrokealpha = 1.0,
   markerstrokecolor = :black)

具体的参数、意义、和备选项,请参考文档。

形状里面好像是没有空心和实心的区别呀,都是实心的。

问题在于理解什么是“实心”?实心跟形状是没有关系的,跟透明度和颜色有关系:一个圆、三角、五角星都可以是实心的,也可以是空心的。

根据 henry2004y 同学给出的文档,我给出一个简单的例子。

可以这样考虑空心:内部填充与背景相同的颜色,边界为与背景不同的颜色,代码如下:

using Plots

x = 1:10
y = -2*x

plot(x, y, markershape = :circle, 
           markercolor = :white, 
           markerstrokecolor = :black)

绘制出来的结果为:
image

看看是不是你要的结果。

查阅 Series Attributes · Plots 可以了解更多信息。

顺便说一句, 在逛英文社区的时候,发现了这个帖子 How to get empty markers, Plots, gr() backend - General Usage - JuliaLang,但其中的部分信息似乎已经过时了。


不过经过实验, gr() 后端不支持透明色的问题还存在。

1 个赞

非常感谢两位大佬,懂了,谢谢!