R-ggplot多系列曲线
我正在一个绘图上绘制多个系列的数据 我有如下数据:R-ggplot多系列曲线,r,ggplot2,R,Ggplot2,我正在一个绘图上绘制多个系列的数据 我有如下数据: count_id AMV Hour duration_in_traffic AMV_norm 1 16012E 4004 14 99 0 2 16012E 4026 12 94 22 3 16012E 4099 15 93 95 4 16012E 4167 11 100 163 5 16012E 4239 10 97 235 我正在使用以下命令在R中绘图
count_id AMV Hour duration_in_traffic AMV_norm
1 16012E 4004 14 99 0
2 16012E 4026 12 94 22
3 16012E 4099 15 93 95
4 16012E 4167 11 100 163
5 16012E 4239 10 97 235
我正在使用以下命令在R中绘图:
ggplot(td_results, aes(AMV,duration_in_traffic)) + geom_line(aes(colour=count_id))
这给了我:
然而,与直线连接点相比,我更喜欢曲线
我发现了以下问题,但得到了意外的输出
我使用了:ggplot(td\u结果,aes(AMV,duration\u in\u流量))+geom\u线(aes(color=count\u id))+stat\u函数(fun=sin)
因此:
如何用某种形式的高阶多项式得到曲线?正如@MrFlick在评论中提到的那样,有一些重要的统计方法可以得到曲线,这些方法可能不在这里讨论 但是,如果您只是想让图形看起来更好,可以尝试使用
样条线插值数据,然后将其添加为另一层
首先,我们制作一些样条曲线数据,使用您拥有的数据点数量的10倍(您可以根据需要增加或减少该数量):
这将根据您的测试数据给出以下图表:
您希望如何将离散点更改为曲线?你想拟合一些统计模型吗?“平滑”线条的方法有很多。您需要选择一个适合您的数据。如果您需要帮助选择一个,您可能希望咨询,因为这更多的是一个统计问题,而不是一个编程问题。
library(dplyr)
dat2 <- td_results %>% select(count_id, AMV, duration_in_traffic) %>%
group_by(count_id) %>%
do(as.data.frame(spline(x= .[["AMV"]], y= .[["duration_in_traffic"]], n = nrow(.)*10)))
library(ggplot2)
ggplot(td_results, aes(AMV, duration_in_traffic)) +
geom_point(aes(colour = factor(count_id))) +
geom_line(data = dat2, aes(x = x, y = y, colour = factor(count_id)))