R ggplot中的控制点边界厚度

R ggplot中的控制点边界厚度,r,ggplot2,border,point,thickness,R,Ggplot2,Border,Point,Thickness,当使用ggplot时,我可以将形状设置为21-25,以获得内部(填充)和边框(列)颜色具有独立设置的形状,如下所示: df <- data.frame(id=runif(12), x=1:12, y=runif(12)) ggplot(df, aes(x=x, y=y)) + geom_point(aes(fill=id, size=id), colour="black", shape=21) 如何控制边界厚度?感觉有点粗糙,但您可以添加一组“背景”点,其大小设置为美学贴图加上一

当使用ggplot时,我可以将
形状设置为21-25,以获得内部(
填充
)和边框(
)颜色具有独立设置的形状,如下所示:

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21)


如何控制边界厚度?

感觉有点粗糙,但您可以添加一组“背景”点,其大小设置为美学贴图加上一些小常量以放大点的边界。使用常量获得所需的边框宽度

您还必须禁用大小图例,以停止在图形上显示图例

ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(size=id+0.5), colour="black" , show_guide = FALSE )+
  scale_size( guide = "none" )+
  geom_point(aes(fill=id, size=id), colour="black", shape=21)

另一种解决方案是在R中创建绘图,然后将其导出为.svg文件。然后可以使用矢量图形编辑软件(如Inkscape)更改线宽。此方法在数据点重叠时特别有用。

从ggplot2的2.0.0版开始,有一个控制点边界厚度的参数。从
NEWS.md
文件:

geom_point()获得笔划美学,控制形状21-25的边界宽度(#1133,@SeySayux)。尺寸和冲程是相加的,因此尺寸=5且冲程=5的点的直径为10mm。(#1142)

因此,正确的解决方案是:

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21, stroke = 2)

df可能是哈奇,但哈德利在他的网站上认可了这种方法Twitter@NoamRoss你有这个链接吗?你能添加输出吗?为了将来的兼容性和清晰性,最好说“从版本x.xx开始”,而不是“最新版本”。有没有一种方法可以根据变量控制笔划的厚度?类似于“缩放-笔划-手册”的内容?作为对我以上评论的回应,我们可以使用缩放-离散-手册。请参阅此处的链接:您知道为什么stroke=0仍然以PDF格式绘制,而不是PNG格式吗?
df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21, stroke = 2)