R 对变量进行排序以生成简单图

R 对变量进行排序以生成简单图,r,plot,R,Plot,我在绘制两条曲线重叠的简单图时遇到了一个困难。x轴上的My变量表示周,因此in希望保持其在数据框中的顺序figU5MR figU5MR Week U5MR CMR fWeek cWeek 1 51 0.9 0.2 51 51 2 52 0.2 0.2 52 52 3 53 0.0 0.0 53 53 4 1 0.0 0.0 1 1 5 2 0.5 0.1 2 2

我在绘制两条曲线重叠的简单图时遇到了一个困难。x轴上的My变量表示周,因此in希望保持其在数据框中的顺序
figU5MR

  figU5MR
    Week U5MR CMR fWeek cWeek
 1    51  0.9 0.2    51    51
 2    52  0.2 0.2    52    52
 3    53  0.0 0.0    53    53
 4     1  0.0 0.0     1     1
 5     2  0.5 0.1     2     2
 6     3  0.2 0.0     3     3
 7     4  0.6 0.2     4     4
 8     5  0.2 0.2     5     5
 9     6  0.2 0.1     6     6
 10    7  0.2 0.0     7     7
 11    8  0.1 0.0     8     8
 12    9  0.1 0.0     9     9
 13   10  0.0 0.1    10    10
 14   11  0.0 0.0    11    11
 15   12  0.1 0.1    12    12
 16   13  0.0 0.0    13    13
 17   14  0.2 0.1    14    14
 18   15  0.1 0.0    15    15
 19   16  0.3 0.1    16    16
 20   17  0.3 0.1    17    17
 21   18  0.1 0.1    18    18
 22   19  0.3 0.1    19    19
 23   20  0.1 0.0    20    20
为此,我首先创建了一个有序因子
fWeek
。要绘制数据,我只需使用以下看似基本的方法:

 plot( x=fWeek, y=U5MR, pch=24, cex=2,type="b", xlab="Weeks", xlim=c(-0.02,1.2), ylab="Death/10'000/day", main="Mortality rates per week",  axes=F)

 plot(x=fWeek,y=CMR,pch=19, cex=1.8,lty=1,type="o", gap=0, sfrac=0.005,  axes=T,   add=TRUE) 
返回的绘图未按预期显示符号:

为了避免这种情况,我还尝试将
Week
转换为字符
cWeek
:然后输出更好,但我失去了周的正确顺序

是否有人知道如何获得我的周的正确顺序(如图1所示,同时保持符号的良好外观如图2所示?抱歉,我知道这是基本的,但我无法得到我想要的,在数小时的搜索后。。
谢谢!

打印的输出让我觉得您已经附加了一个数据帧。附加数据帧是一个坏主意。相反,请学习将
一起使用,这样您就可以获取数字化的行名(假设您还没有在其中放入字符值)。也可以使用
1:nrow(dfrm)
获取传递给
y
的数字序列:

with(dfrm, plot( x=as.numeric(rownames(dfrm)), y=U5MR, pch=24, cex=2,type="b",
     xlab="Weeks", ylab="Death/10'000/day", main="Mortality rates per week",
     xaxt="n"))
将轴添加回:

 axis(1, at=as.numeric(rownames(dfrm)), labels=dfrm$Week)

…并省略xlim。这毫无意义(无论如何对我来说)。

打印的输出让我觉得有一个附加的数据帧。附加数据帧是一个坏主意。相反,要学会将
一起使用,这样你就可以获取数字化的行名(假设你还没有在其中放入字符值)。还可以使用
1:nrow(dfrm)
获取传递给
y
的数字序列:

with(dfrm, plot( x=as.numeric(rownames(dfrm)), y=U5MR, pch=24, cex=2,type="b",
     xlab="Weeks", ylab="Death/10'000/day", main="Mortality rates per week",
     xaxt="n"))
将轴添加回:

 axis(1, at=as.numeric(rownames(dfrm)), labels=dfrm$Week)

…并省略xlim。这毫无意义(对我来说).

值得注意的是,这是一个很大的帮助,我不会忘记。非常感谢你为一个不那么性感的问题提供了如此清晰的答案……所有这些都很有用!值得注意的是,这是一个很大的帮助,我不会忘记。非常感谢你为一个不那么性感的问题提供了如此清晰的答案……所有这些都很有用!