我正在尝试在ggplot中建立哑铃图(geom_dumbbell)。该图构建良好,但是当我尝试在点颜色和大小周围添加详细信息时,该图无法继承aes并喷出:
错误:
mapping
必须由aes()
创建
以下是生成可重现示例的代码:
test <- data.frame(Scenario = rep(c("LC-HD", "HC-HD", "LC-LD", "HC-LD"), times = 2),
technology = c("P", "W", "P", "W", "P", "W", "P", "W"),
country = paste("country", rep(seq(1, 4, by = 1), times = 2)),
low = runif(8, min = 1, max = 3),
high = runif(8, min = 4, max = 6))
以下代码运行良好:
library(ggplot2)
library(ggalt)
ggplot(test, aes(x = low, xend = high, y = country, group = country)) +
geom_dumbbell(color="grey",
size = 1) +
facet_grid(technology ~ Scenario) +
coord_flip() +
theme(axis.text.x = element_text(angle = 90))
但是,当我对geom_dumbbell图层进行以下更改(设置点的颜色和大小)时:
library(devtools)
library(ggplot2)
library(ggalt)
ggplot(test, aes(x = low, xend = high, y = country, group = country)) +
geom_dumbbell(color="grey",
size = 1,
point.size.l = 1.5, point.size.r = 1,5,
point.colour.l = "#58d9ef", point.colour.r = "#a3c4dc") +
facet_grid(technology ~ Scenario) +
coord_flip() +
theme(axis.text.x = element_text(angle = 90))
我得到了错误:
错误:
mapping
必须由aes()
创建
即使我尝试在geom_bumbbell层中显式设置Inherit.aes = T,我仍然会收到错误消息。
问题似乎出在point.size参数上,因为添加该参数会导致错误。当我只添加point.colour参数时,我得到:
警告:忽略未知参数:point.color.l,point.color.r
这很奇怪,因为这些是文档中描述的参数:https://www.rdocumentation.org/packages/SciencesPo/versions/1.4.1/topics/geom_dumbbell
我正在运行ggalt_0.6.1(将加载geom_dumbbell)
我在这里想念什么。为什么在这些点上添加细节会改变aes的继承方式,为什么不能识别point.colour参数?
答案 0 :(得分:1)
解决了这个问题。
错误:映射必须由aes()创建
是由point.size.r中的逗号引起的。
警告:忽略未知参数:point.color.l,point.color.r
是由于使用了错误的名称引起的。
应为:
point.size.l = size_x
point.size.r = size_xend
point.color.l = colour_x
point.color.r = colour_xend
解决方案在这里:Ignoring unknown parameters: point.colour.1
对令人困惑的问题标题的道歉。我不确定如何编辑文档:https://www.rdocumentation.org/packages/SciencesPo/versions/1.4.1/topics/geom_dumbbell