我已经尝试了所有能找到的方法,但都没有成功。
我使用内置数据集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)
linetype="dashed"
放在aes
之外,并将show_guide
设为 F,则一切都看起来正常,但是当然,1:1线的图例消失了。我不知道这是否有任何帮助... - PavoDive