如何在 R 中的一个图中制作多条平滑曲线(使用这些数据)?

问题描述 投票:0回答:2

我是 R 初学者。我有以下数据: 5辆车从A地行驶到B地,总里程为100公里。这些汽车的速度是在不同时刻测量的。 x 轴表示测量时刻(以公里为单位),y 轴表示该时刻的速度。

我在 Excel 中对数据进行了排序,如图所示:Excelsheet

我尝试用 ggplot 绘制这些数据,但我没有得到任何线条,如果我得到线条,那么它们并不平滑。我还想要测量位置的点并给它们一个颜色。然后在它旁边放一个传奇,就像图片上一样。在 Excel 上这很容易,但作为 R 初学者,这很困难。我已经尝试过不同的方法。

有人可以帮助我吗?

第二次测量数据

r plot smoothing
2个回答
0
投票

大部分工作都是在数据修改中。绘图本身很简单。

# Data munging
tribble(~"Km1",~"Speed1",~"Km2",~"Speed2",~"Km3",~"Speed3",
        10,32,8,64,5,34,
        20,63,15,34,15,23,
        30,45,26,46,25,55,
        40,45,37,75,35,64,
        
        50,1,50,2,50,3) %>% 
  tidyr::pivot_longer(cols = everything(),names_to = "Name",values_to = "Values") %>% 
  dplyr::mutate(Car = str_extract(Name,"\\d") %>% str_c("Car ",.),
                Name = str_replace(Name,"\\d","")) %>% 
  dplyr::group_by(Car,Name) %>% 
  dplyr::mutate(Values = str_c(Values,collapse = ",")) %>% 
  dplyr::slice(1) %>% 
  dplyr::ungroup() %>% 
  tidyr::pivot_wider(id_cols = Car,names_from = Name,values_from = Values) %>% 
  tidyr::separate_rows(Km, Speed) %>% 
  dplyr::mutate(Km = as.numeric(Km),
                Speed = as.numeric(Speed)) 
  # Data plotting
  ggplot(aes(Km,Speed,color = Car)) +
  geom_point() + 
  stat_smooth()

输出:

enter image description here


0
投票

如果我运行你的代码,我会收到一条错误消息:

dplyr::mutate()
中的错误: ℹ 在争论中:
Car = str_extract(Name, "\\d") %>% str_c("Car ", .)
。 由
str_c()
中的错误引起: !找不到函数“str_c” 运行
rlang::last_trace()
查看错误发生的位置。

有什么线索吗? 我正在使用 R 4.3.3

最诚挚的问候,克里斯

© www.soinside.com 2019 - 2024. All rights reserved.