根据 geom_abline() 的等式在 geom_point() 上标记点
Labelling points on a geom_point() based on the equation of geom_abline()
今天我有一个有趣的问题要问你。任何帮助都会很棒。
我有 geom_plot()
set.seed(1)
list1 <- sample(10, 100, replace = T)
list2 <- sample(7, 100, replace = T)
df <- data.frame(list1, list2)
df
ggplot(data=df, aes(x=list1, y=list2)) + geom_point()
x3 <- c(10,6)
y3 <- c(1,7)
slope3 <- diff(y3)/diff(x3)
intercept3 <- y3[1] - slope*x3[1]
ggplot(data = df, aes(x=list1, y=list2)) +
geom_point() +
geom_abline(data = NULL, intercept = intercept3, slope = slope3, col="red")
我最想做的是标记我绘制的 geom_abline() 上或右侧的所有点 我想使用 geom_label_repel() 函数使它看起来整洁,但是当我尝试这样做时,它只是标记了每个点!如果可能的话,我还想在未来根据其他标准进一步对绘制的 geom_abline() 或右侧的数据点进行子集化。
提前致谢!
你可以试试这个:
set.seed(1)
list1 <- sample(10, 100, replace = T)
list2 <- sample(7, 100, replace = T)
df <- data.frame(list1, list2)
df
ggplot(data=df, aes(x=list1, y=list2)) + geom_point()
x3 <- c(10,6)
y3 <- c(1,7)
slope3 <- diff(y3)/diff(x3)
intercept3 <- y3[1] - slope3*x3[1]
#Mutate
df$prod <- intercept3+slope3*df$list1
df$label <- ifelse(df$list2>df$prod,'text',NA)
ggplot(data = df, aes(x=list1, y=list2,label=label)) +
geom_point() +
geom_abline(data = NULL, intercept = intercept3, slope = slope3, col="red")+
geom_text(vjust=-0.5)
今天我有一个有趣的问题要问你。任何帮助都会很棒。
我有 geom_plot()
set.seed(1)
list1 <- sample(10, 100, replace = T)
list2 <- sample(7, 100, replace = T)
df <- data.frame(list1, list2)
df
ggplot(data=df, aes(x=list1, y=list2)) + geom_point()
x3 <- c(10,6)
y3 <- c(1,7)
slope3 <- diff(y3)/diff(x3)
intercept3 <- y3[1] - slope*x3[1]
ggplot(data = df, aes(x=list1, y=list2)) +
geom_point() +
geom_abline(data = NULL, intercept = intercept3, slope = slope3, col="red")
我最想做的是标记我绘制的 geom_abline() 上或右侧的所有点 我想使用 geom_label_repel() 函数使它看起来整洁,但是当我尝试这样做时,它只是标记了每个点!如果可能的话,我还想在未来根据其他标准进一步对绘制的 geom_abline() 或右侧的数据点进行子集化。
提前致谢!
你可以试试这个:
set.seed(1)
list1 <- sample(10, 100, replace = T)
list2 <- sample(7, 100, replace = T)
df <- data.frame(list1, list2)
df
ggplot(data=df, aes(x=list1, y=list2)) + geom_point()
x3 <- c(10,6)
y3 <- c(1,7)
slope3 <- diff(y3)/diff(x3)
intercept3 <- y3[1] - slope3*x3[1]
#Mutate
df$prod <- intercept3+slope3*df$list1
df$label <- ifelse(df$list2>df$prod,'text',NA)
ggplot(data = df, aes(x=list1, y=list2,label=label)) +
geom_point() +
geom_abline(data = NULL, intercept = intercept3, slope = slope3, col="red")+
geom_text(vjust=-0.5)