我想在以下ggplot中调整线型。因此,我在data.frame df中引入了另一列来表示线型,但是一旦将其转换为因数,图例中就会出现线型而不是“方法”(请参阅试验3)。
如何获得传说中的“方法”?最后,我希望能够
这是我的尝试:
require(ggplot2)
set.seed(1)
df <- data.frame(x=c(1:4, 2:5),
method=rep(c("a", "b"), each=4),
lt=rep(c(5,3), each=4),
value=rep(c(0,1), each=4)+runif(8))
## trial 1:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=method))
# fine, but not the linetypes I would like to have
## trial 2:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=lt))
# correct linetypes, but no legend
## trial 3:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=as.factor(lt)))
# legend, but not the correct one (I would like to have the "group"ing
# variable "method" in the legend as in trial 1)
最佳答案
使用method
作为linetype
,然后手动将其映射到所需的行类型。您无需以这种方式引入另一个变量。
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(linetype=method)) +
scale_linetype_manual(breaks=c("a","b"), values=c(5,3))
关于r - ggplot2:如何调整图例中的线型和顺序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8407467/