X轴在DF熔化后不排序离散值

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

我对R相当陌生,我对ggplot2的使用以及melt函数有问题。在特定情况下,我试图创建一个多线图,以表示某些时间间隔及其在比赛中的演变。

说数据框如下(DF_TimeGap)

   Lap Ath1 Ath2 Ath3 Ath4 Ath5
1    1   0    0    0   -1     1
2    2   0    0   14    0    28
3    3   0   -1    3    0    18
4    4   0    0    1    0     3
5    5   0   -8    1   -9     3
6    6   0  -22    0  -23     1
7    7   0    0    1  -19     3
8    8   0   -1   13   -2    13
9    9   0   -1    1    0    -1
10  10   0    5    7    8    10

然后我用]融化>

library(reshape2)
DFMelt_TimeGap = melt(DF_TimeGap, id.var="Lap")
names(DFMelt_TimeGap)[2] = "Rider"
names(DFMelt_TimeGap)[3] = "Gap"

而且看起来(出于空间原因,我只报告前两个)

    Lap    Rider  Gap
1    1      Ath1   0
2    2      Ath1   0
3    3      Ath1   0
4    4      Ath1   0
5    5      Ath1   0
6    6      Ath1   0
7    7      Ath1   0
8    8      Ath1   0
9    9      Ath1   0
10  10      Ath1   0
11   1      Ath2   0
12   2      Ath2    0
13   3      Ath2   -1
14   4      Ath2    0
15   5      Ath2   -8
16   6      Ath2  -22
17   7      Ath2    0
18   8      Ath2   -1
19   9      Ath2   -1
20  10      Ath2    5
...

当我试图绘制多线图时

ggplot(DFMelt_TimeGap, aes(x = Lap, y = Gap, col= Rider, group = Rider)) +
  geom_point()+
  geom_line()+
  xlab("Lap")+ ylab("Gap (s)")

我获得的是以下图表(忘记颜色标签,我避免了不必要的代码)enter image description here

如果不是因为x轴上的顺序是1 10 2 3 4 5 6 7 8 9

有人知道如何解决此类问题吗?感谢所有热心贡献的人

我对R相当陌生,我对ggplot2的使用以及melt函数有问题。在特定情况下,我尝试创建一个多线图,该图表示某些时间间隔,并且...

r ggplot2 melt
1个回答
1
投票

在融化过程中,Lap会以某种方式转换为角色。我的猜测是,在您的真实数据中,Lap已经包含一个字符(或更糟的是factor)。然后,在ggplot中,x轴映射到一个字符列,该列默认情况下使用字母顺序。

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