R 在ggplot2中固定x轴顺序

R 在ggplot2中固定x轴顺序,r,ggplot2,R,Ggplot2,我有以下数据 dftmp z.transient kprimes groupname 1 -1.244061 10 k=9.8,p=56.4 2 -0.995249 20 k=9.8,p=56.4 3 -0.746437 30 k=9.8,p=56.4 4 -0.497625 40 k=9.8,p=56.4 5 -0.248812 50 k=9.8,p=56.4 6

我有以下数据

dftmp
   z.transient kprimes       groupname
1    -1.244061      10    k=9.8,p=56.4
2    -0.995249      20    k=9.8,p=56.4
3    -0.746437      30    k=9.8,p=56.4
4    -0.497625      40    k=9.8,p=56.4
5    -0.248812      50    k=9.8,p=56.4
6            0      60    k=9.8,p=56.4
7     0.248812      70    k=9.8,p=56.4
8     0.497625      80    k=9.8,p=56.4
9     0.746437      90    k=9.8,p=56.4
10    0.995249     100    k=9.8,p=56.4
11    1.244061     110    k=9.8,p=56.4
12   -1.244061     100 k=103.2,p=155.5
13   -0.995249     200 k=103.2,p=155.5
14   -0.746437     300 k=103.2,p=155.5
15   -0.497625     400 k=103.2,p=155.5
16   -0.248812     500 k=103.2,p=155.5
17           0     600 k=103.2,p=155.5
18    0.248812     700 k=103.2,p=155.5
19    0.497625     800 k=103.2,p=155.5
20    0.746437     900 k=103.2,p=155.5
21    0.995249    1000 k=103.2,p=155.5
22    1.244061    1100 k=103.2,p=155.5
23   -1.244061    1000   k=786.9,p=849
24   -0.995249    2000   k=786.9,p=849
25   -0.746437    3000   k=786.9,p=849
26   -0.497625    4000   k=786.9,p=849
27   -0.248812    5000   k=786.9,p=849
28           0    6000   k=786.9,p=849
29    0.248812    7000   k=786.9,p=849
30    0.497625    8000   k=786.9,p=849
31    0.746437    9000   k=786.9,p=849
32    0.995249   10000   k=786.9,p=849
33    1.244061   11000   k=786.9,p=849
我想用ggplot2来绘制它

p <- ggplot(dftmp, aes(x=z.transient, y=kprimes, group=groupname))
p <- p + geom_line(aes(colour=groupname), size=2) 
p <- p + scale_y_log10()

p那是因为你的
z.transient
是你所说的一个因素。在我看来,这是一个连续变量不是吗?如果是,请将其从系数转换为值(请参见
?系数

然后按照你的绘图步骤


就轴的限制而言,应该将您引导到正确的方向。

您真的希望x轴是明确的吗?既然它是数字,为什么不把它画成连续变量呢?制作一个列,
as.numeric(as.character(z.transient))
并将你的x美学映射到它。你是对的,我不希望它成为一个因素。我一直用你的代码来解构事物,但它看起来像是一个黑客。很高兴知道我不是唯一的一个。
dftmp$z.transient <- as.numeric(levels(dftmp$z.transient))[dftmp$z.transient]
dftmp <- read.table('clipboard')