我尝试了我能找到的任何东西,但无济于事。
我已经使用内置数据集 mtcars 复制了我的问题。我正在使用 R 中的 ggplot2 制作具有气泡图特征的散点图。我的代码中一些不适用于此数据集的东西是对数刻度并强制点的颜色,但除非这些顺序是因素我想我可以稍后处理。
发生了什么:
我必须有一个 1:1 的线,我使用 geom_abline 因为它似乎最有意义。我使用从其他问题中找到的方法将图例添加到图中,但是当这种情况发生时,所有其他图例条目都会改变形状和方向。
理想情况下,我想解决这个问题,如果可能的话,让虚线以水平方式显示。
p <- ggplot(mtcars, aes(drat,wt, size=hp, colour=cyl)) +geom_point()+
scale_size_area(max_size=5)+
labs(x="drat", y="wt")
p+ theme(panel.background = element_rect(fill = "white", colour = "black"),
panel.grid.major = element_line(colour= "grey75"),
axis.text.x = element_text(colour = "black"),
axis.text.y = element_text(colour = "black"))+
guides(colour = guide_legend(override.aes = list(size=6)))+
geom_abline(aes(intercept = 0, slope = 1, linetype = "dashed"),show_guide = TRUE)+
scale_linetype_manual("1:1 line", values = 2)
更新:要解决对角矩形而不是圆点的问题,请参阅下面的 Didzis Elferts 解决方案。 仍在寻找一种使图例线水平而不是像现在这样在对角线上的方法。 添加了 Didzis Elferts 修复的代码如下
p <- ggplot(mtcars, aes(drat,wt, size=hp, colour=cyl)) +geom_point()+
scale_size_area(max_size=5)+
labs(x="drat", y="wt")
p+ theme(panel.background = element_rect(fill = "white", colour = "black"),
panel.grid.major = element_line(colour= "grey75"),
axis.text.x = element_text(colour = "black"),
axis.text.y = element_text(colour = "black"))+
guides(colour = guide_legend(override.aes = list(size=6,
linetype=0)),size = guide_legend(override.aes=list(linetype=0)))+
geom_abline(aes(intercept = 0, slope = 1, linetype = "dashed"),
show_guide = TRUE)+scale_linetype_manual("1:1 line", values = 2)