很抱歉,如果这个问题是重复的;在Stack Overflow上查找“在两点之间画一条线”给了我一些想法,但是我不确定如何将它们应用于我的特定问题。
假设我的数据采用以下形式:
x <- runif(n = 10)
y <- runif(n = 10)
graphData <- data.frame(x, y)
graphData
x y
1 0.3328235 0.30122890
2 0.4886130 0.06072057
3 0.9544738 0.94772694
4 0.4829024 0.72059627
5 0.8903502 0.14229430
6 0.9144382 0.54928466
7 0.6087350 0.95409124
8 0.4106898 0.58548335
9 0.1470947 0.40451028
10 0.9352998 0.64789348
然后我对这些数据做一个散点图:
library(ggplot2)
p <- ggplot(graphData, aes(x = x, y = y)) +
geom_point()
p
我想要的是精确绘制一条线,将y值最高的点与x值最高的点连接起来。 (该示例使它们看起来可能是同一点,但在我的实际数据中,发生这种情况的几率非常小。)
此外,我不仅在情节上画线,而且还画线。我还需要提供该行作为公式,以用于单独的分析中。有想法吗?
答案 0 :(得分:4)
我会尝试:
p <- ggplot(graphData, aes(x = x, y = y)) +
geom_point()+
geom_smooth(data = . %>% filter(x == max(x) | y == max(y)), method = lm)
p
然后调用该行的公式:
lm(y ~ x, data = graphData %>% filter(x == max(x) | y == max(y)))