Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-ggplot多系列曲线_R_Ggplot2 - Fatal编程技术网

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)))