我想在一个图形上表示三条线,这些线上覆盖着我在判别函数分析中使用的数据点。根据我的分析,我有两个点落在每条线上,我想表示这三条线。这些线表示分类方案的概率等高线,我如何得到线上的点与我的问题无关。然而,我希望直线比定义它们的点延伸得更远。
df <-
data.frame(Prob = rep(c("5", "50", "95"), each=2),
Wing = rep(c(107,116), 3),
Bill = c(36.92055, 36.12167, 31.66012, 30.86124, 26.39968, 25.6008))
ggplot()+
geom_line(data=df, aes(x=Bill, y=Wing, group=Prob, color=Prob))
上面的df是我的点的 Dataframe ,从这些点可以构造出三条线。我希望这些线从y=105
to y=125
开始延伸。谢谢!
2条答案
按热度按时间yqkkidmi1#
可能还有更惯用的方法来做这件事,但这是一种完成它的方法。
简而言之,您可以快速计算连接直线的线性公式,即y = mx+c
希望这能帮助你得到你想要的图表。
这在很大程度上取决于数据的结构,但可以对其进行更改以适应不同的形状。
esbemjvw2#
类似于@James的方法,我根据给定数据计算斜率和截距,并使用
geom_abline
绘制直线,但使用summarise
而不是mutate
,以删除NA
值geom_blank
代替geom_point
,以便只显示线而不显示点(注:拥有另一个geom
对于设置scale
或数据范围以及显示行至关重要)。