订购变量以生成简单的图

时间:2017-05-27 07:00:40

标签: r plot

我在制作一个有两条曲线重叠的简单情节时面临困难。 x轴上的变量代表周数,因此我希望按照数据框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) 

返回的图表未按预期显示符号:enter image description here

为了避免这种情况,我还尝试将Week转换为字符cWeek:然后输出效果更好,但我的周数正确无法排序...... weeks 51 to 53 appear at the complete end of the graph

有没有人知道如何获得我周的正确排序(如图1所示,同时保持符号的漂亮外观,如图2所示?对不起,我知道这是基本但我无法得到我的希望,经过几个小时搜索.. 谢谢!

1 个答案:

答案 0 :(得分:2)

打印输出让我觉得您附加了一个数据框。附加数据帧是一个不错的想法。而是学习使用Laravel,它们允许你抓取数值化的rownames(假设你还没有放置字符值)。也可以使用with来获取传递给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"))

..并省略了xlim。这对我来说毫无意义enter image description here