笔画美学是否适用于0到14号形状?

4

最近通过一个GitHub开源教材开始学习R。在该开源教材的3.3.1练习下的第5个问题中,提出了以下问题:"美学stroke有什么作用?它适用于哪些形状?(提示:使用?geom_point)"

我明白stroke美学可以与21-24号形状一起使用,因为它们有边框,但我想知道为什么非官方答案没有提到它也可以适用于0-14号形状,因为你也可以改变这些边框的颜色呢?目前还没有官方答案,许多人认为这本书在回答原始开源教材的练习方面很准确,因此称之为“非官方答案”。在cran.r-project.org网站上也没有提到,关于形状的“颜色和填充”(接近页面末尾)。

已加载了整洁化程序和我用于形状5的代码。

ggplot(data = mpg)+
 geom_point(mapping = aes(x = displ, y = hwy), shape = 5, colour = "green", stroke = 3)

& 我用于形状23的代码

ggplot(data = mpg)+
 geom_point(mapping = aes(x = displ, y = hwy), shape = 23, colour = "green", stroke = 3)

两者在RStudio中都给出了相同的结果且无误。然而,尽管结果相同,我担心这个“错误”可能会带来我不知道的未来后果;因此提出问题。提前感谢!

2个回答

4
stroke参数用于控制点的边缘/边框的大小。换句话说,它改变了形状的边框大小,就像在非官方答案中一样。
如果您仔细查看https://ggplot2.tidyverse.org/articles/ggplot2-specs.html,您会注意到形状21-24具有strokefill参数,因为它们填充有纹理。
对于0-14个形状不是这种情况。 fill参数对它们无效。您无法更改shape的内部颜色,它始终是白色,如下所示。但是,stroke参数有效,因为它们具有边框,size参数也有效,但内部始终是白色,无论给定fill参数如何。
library(ggplot2)
library(gridExtra)

g1_bis <- ggplot(data = mpg)+
  geom_point(mapping = aes(x = displ, y = hwy),
             shape = 5,
             fill = "red",
             colour = "green",
             stroke = 3)


g2_bis <- ggplot(data = mpg)+
  geom_point(mapping = aes(x = displ, y = hwy),
             fill = "red",
             colour = "green",
             shape = 5,
             size = 10)

grid.arrange(g1_bis, g2_bis)

enter image description here

对于14-21形状,我认为sizestroke参数几乎相同。
g1 <- ggplot(data = mpg)+
  geom_point(mapping = aes(x = displ, y = hwy),
             shape = 17,
             stroke = 3)

g2 <- ggplot(data = mpg)+
  geom_point(mapping = aes(x = displ, y = hwy),
             shape = 17,
             size = 3)

grid.arrange(g1, g2)

enter image description here

你的例子非常正常,因为你没有指定填充内容,所以形状23被填充成白色,但边框是绿色且足够大:3。形状5也是如此。对于所有形状,size参数控制填充区域的大小。
g1 <- ggplot(data = mpg)+
  geom_point(mapping = aes(x = displ, y = hwy),
             shape = 17,
             stroke = 3)

g2 <- ggplot(data = mpg)+
  geom_point(mapping = aes(x = displ, y = hwy),
             shape = 17,
             size = 3)

grid.arrange(g1, g2)

enter image description here

仅以我所做过的最丑陋的情节来结束这篇文章。我发现了边框和填充之间的微妙差别。谢谢。


0
我检查了不同的代码行,以了解FILL和STROKE的作用。最后我明白了,你可以通过使用FILL来决定填充颜色,但是像形状一样,每种颜色都由数字定义。例如:4代表蓝色,3代表绿色。而STROKE则是关于形状边框的宽度。STROKE的值越大,边框就越粗。希望我能回答你的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接