我用 ggplot2 创建了一个图表,我想添加一条从左下角到右上角的对角线,并为这条线指定颜色。我怎样才能做到这一点?
\n\nggplot(data, aes(x=DRTG, y=ORTG)) +\n geom_point(colour = "#000000") + \n ggtitle("Gr\xc3\xa1fico: Ratio Defensivo / Ratio Ofensivo (hasta jornada 8)") +\n geom_text(label=rownames(data), colour = "#000000", nudge_x = 0, nudge_y = 0.75, size = 4, vjust = "inward", hjust = "inward", check_overlap = F) +\n geom_point(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, colour="red", size = 1)) + \n geom_vline(xintercept = pointMedia[, "mediaDRTG"], colour = "green") + \n geom_hline(yintercept = pointMedia[, "mediaORTG"], colour = "blue") +\n geom_text(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, nudge_x = 0, nudge_y = 0.75, label="Liga DIA")) +\n theme(legend.position = "none")\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n编辑一:
\n\n我添加了 + geom_abline(intercept = 120,lopes = 0) 但我什么也没得到:(我做错了什么?
\n\nggplot(data, aes(x=DRTG, y=ORTG)) +\n geom_point(colour = "#000000") + \n ggtitle("Gr\xc3\xa1fico: Ratio Defensivo / Ratio Ofensivo (hasta jornada 8)") +\n geom_text(label=rownames(data), colour = "#000000", nudge_x = 0, nudge_y = 0.75, size = 4, vjust = "inward", hjust = "inward", check_overlap = F) +\n geom_point(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, colour="red", size = 1)) + \n geom_vline(xintercept = pointMedia[, "mediaDRTG"], colour = "green") + \n geom_hline(yintercept = pointMedia[, "mediaORTG"], colour = "blue") +\n geom_text(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, label="Liga DIA"), nudge_x = 0, nudge_y = 0.75) +\n geom_abline(intercept = 120, slope = 0) +\n theme(legend.position = "none")\nRun Code Online (Sandbox Code Playgroud)\n\n编辑二:
\n\n我已将截距和斜率设置为该值,我得到了这张照片
\n\nggplot(data, aes(x=DRTG, y=ORTG)) +\n geom_point(colour = "#000000") + \n ggtitle("Gr\xc3\xa1fico: Ratio Defensivo / Ratio Ofensivo (hasta jornada 8)") +\n geom_text(label=rownames(data), colour = "#000000", nudge_x = 0, nudge_y = 0.75, size = 4, vjust = "inward", hjust = "inward", check_overlap = F) +\n geom_point(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, colour="red", size = 1)) + \n geom_vline(xintercept = pointMedia[, "mediaDRTG"], colour = "green") + \n geom_hline(yintercept = pointMedia[, "mediaORTG"], colour = "blue") +\n geom_text(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, label="Liga DIA"), nudge_x = 0, nudge_y = 0.75) +\n geom_abline(intercept = 11.6, slope = 1) +\n theme(legend.position = "none")\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n我想要的是线的末端位于图表的右上角。
\n\n我想从图表的左下角到图表的右上角画一条线。
\n鉴于没有人回答这个问题,我想我应该在这里添加一个,这样人们就可以快速引用它,而不是浏览评论,因为当我第一次用谷歌搜索它时,我发现这是一个有用的线程。首先,您可以快速自动地在ggplot函数上画一条线,甚至无需使用aes参数。
ggplot()+
geom_abline()
Run Code Online (Sandbox Code Playgroud)
就像这样:
当然,这本身并不是很有用。鉴于没有给出任何可重复的数据,我可以提供一个示例,以便人们可以尝试。如果需要,我们可以使用这些iris数据在页面上画一条简单的线。
ggplot(iris,
aes(x=Petal.Length,
y=Petal.Width))+
geom_point()+
geom_abline()
Run Code Online (Sandbox Code Playgroud)
当然,现在这也不是很有帮助。我们可以使其更有用的一种方法是将其应用于回归线。我们首先调用lm函数来获取斜率和截距值,然后将它们插入到geom_abline函数中,然后将其着色为蓝色。
lm(Petal.Width ~ Petal.Length,
data = iris) # int: -0.361, slope = .4158
ggplot(iris,
aes(x=Petal.Length,
y=Petal.Width))+
geom_point()+
geom_abline(slope = .4158,
intercept = -0.3631,
color="blue")
Run Code Online (Sandbox Code Playgroud)
也许我们想在绘图中建立截止区域(也许有一些理论上的原因,值只能位于绘图上的某个范围内。我们可以在数据点上方和下方创建几条红色虚线。
ggplot(iris,
aes(x=Petal.Length,
y=Petal.Width))+
geom_point()+
geom_abline(slope = .4158,
intercept = -0.3631,
color="blue")+
geom_abline(slope = .6,
intercept = 0.1,
color="red",
linetype = "dashed")+
geom_abline(slope = .4,
intercept = -1,
color="red",
linetype = "dashed")
Run Code Online (Sandbox Code Playgroud)
实际上,有无数种使用方法及其变体,因此如果您有时间的话,geom_abline探索其他方法会很好。geom_hlinegeom_vline
| 归档时间: |
|
| 查看次数: |
23499 次 |
| 最近记录: |