- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含连续 x 和 y 变量的图,第三个连续变量映射到“尺寸”美学,第四个离散变量映射到“形状”美学。如果我只指定 geom_point()
,“大小”刻度的图例会显示不同大小的项目符号,这很好,但如果我还指定 geom_smooth
,图例会显示一条线超过子弹,这不是我想要的。在指定 geom_smooth()
时,有没有办法只保留图例中的项目符号?
我试过
guides(size=guide_legend(override.aes=list(shape="circle")))
但是没用
这是一个 MRE:
df <- tibble(a=rnorm(100), b=rnorm(100), c=rnorm(100), d=rep(c("A", "B"), 50))
ggplot(df, aes(x=a, y=b, shape=d, size=c)) +
geom_point()
上面的代码为“size”生成了想要的图例。
我想要的是按组添加平滑线,具有不同的线型:
ggplot(df, aes(x=a, y=b, shape=d, size=c)) +
geom_point() +
geom_smooth(method="lm", aes(linetype=d), color="black")
大小的图例现在有与项目符号重叠的线条。
当我添加 geom_smooth()
时,我也希望得到第一个代码生成的图例。
最佳答案
要将图例分开(在本例中为线型与尺寸),您可以为它们指定不同的标题。这可能与向其中添加一个空格一样微小,例如 "d"
和 "d "
,尽管这可能不是最好的主意。
我给线型赋予了自己的标题,所以它有自己单独的图例。我还从尺寸图例的 aes
中删除了线型,方法是给它一个 NA
的线型(NULL
也应该有效)。
library(ggplot2)
set.seed(515)
df <- tibble::tibble(a=rnorm(100), b=rnorm(100), c=rnorm(100), d=rep(c("A", "B"), 50))
ggplot(df, aes(x=a, y=b, shape=d, size=c)) +
geom_point() +
geom_smooth(method="lm", aes(linetype=d), color="black") +
guides(linetype = guide_legend(title = "d - line"),
size = guide_legend(title = "c", override.aes = list(linetype = NA)))
关于r - 当需要 "size"美学和 geom_smooth 时更改图异常(exception)观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56153226/
我无法将存储在变量中的 POSIXct 作为 geom_rect 的 xmin/xmax 传递。我试图构建一个独立的示例,而不会轻视我正在尝试做的事情...... 这个想法是采用一个 ggplot2
我想动态修改/创建美感,而无需重新创建geom层。以下是我的代码。 library("ggplot2") dat 3)) 这里我必须修改geom_point以添加美感。这个想法是始终绘制点并动态修改颜
我想更改一组 ggplot 的点和线的默认颜色。 当然,我可以定义一种颜色,然后在每个绘图中显式调用它: my_colour <- "firebrick" ggplot(cars, aes(speed
假设我有两个 ggplot 美学: a.1 c(a.1,a.2) $v.1 [1] 1 $v.2 [1] 2 $v.3 [1] 3 aes对象是“未计算的表达式”和 c()函数按预期工作,具体取决于
我想使用具有 2 美学的包 ggpubr 的 ggline。等效项在 geom_line 中完美运行,但在 ggline 中无效。假设我有这个数据集 data % mutate(a = x^2,
我有以下数据集 map(.x = list(small = 3, medium = 10, large = 100) , .f = ~ sample(rnorm(1000), .x, r
Scatterplot<-ggplot( diamonds[sample(nrow(diamonds), 1000), ], aes(carat, price, colour=cl
我是一名优秀的程序员,十分优秀!