我试图将xvar中位数显示为虚线&在传奇中展示它。这是我的代码:
require(ggplot2)
require(scales)
medians_mtcars <- data.frame("wt.median"=median(mtcars$wt))
# legend shows but linetype is wrong (solid)
p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
p <- p + geom_vline(aes(xintercept=wt.median, linetype="dotted"),
data=medians_mtcars, show_guide=TRUE)
p
我也尝试过:
# linetype is correct but legend does not show
p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
p <- p + geom_vline(aes(xintercept=wt.median),
data=medians_mtcars, show_guide=TRUE, linetype="dotted")
p
本来希望发布情节图像,但还没有超过声誉阈值。
此论坛上有2篇其他帖子接近此主题,但未提供此问题的解决方案: Add vline to existing plot and have it appear in ggplot2 legend? ; Incorrect linetype in legend, ggplot2 in R
我正在使用ggplot2版本1.0.0
我做错了什么?
提前致谢
答案 0 :(得分:0)
如果您需要在图例中显示线型并更改它,那么在aes()
内您只需为该线型写入名称(因为您只有一行),然后使用scale_linetype_manual()
更改线型。< / p>
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
geom_vline(aes(xintercept=wt.median, linetype="media"),
data=medians_mtcars, show_guide=TRUE)+
scale_linetype_manual(values="dotted")
如果您真的想在aes()
中输入线型并获得正确的图例,那么您应该使用带有参数scale_linetype_identity()
的{{1}}。
guide="legend"