2017-05-27 50 views
0

我在生成两条曲线叠加的简单绘图时遇到了困难。我在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所示?对不起,我知道这是b asic,但我不能得到我想要的东西,搜索几小时后.. 谢谢!

回答

2

打印的输出让我觉得有一个你已经附加的数据框。附加数据框是一个糟糕的想法。相反,学会使用with,他们允许你抓住数字化的rownames(假设你还没有把字符值放在那里)。也可以使用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。这对我来说没有任何意义(对我来说)enter image description here

+0

呃注意到,这是很大的帮助,我不会忘记。非常感谢你提供这样一个非常性感的问题的明确答案......这一切都很有用! – den

相关问题