2017-05-27 1 views
0

Je rencontre une difficulté en produisant un tracé simple avec deux courbes superposées. Ma variable sur l'axe des abscisses représente semaines et donc voudrait le garder ordonné que dans le dataframe figU5MRCommander une variable pour produire un tracé simple

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 

Pour ce faire, j'ai d'abord créé un facteur ordonné fWeek. Pour tracer les données que j'utilise simplement les éléments suivants qui semble fondamentale:

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) 

L'intrigue retournée ne montre pas les symboles comme prévu: enter image description here

Pour contourner ce j'ai essayé aussi de transformer Week comme un personnage cWeek: alors la sortie est meilleure mais j'ai perdu la commande correcte de mes semaines ... weeks 51 to 53 appear at the complete end of the graph

Est-ce que quelqu'un a une idée sur la façon d'obtenir le bon ordre de mes semaines (comme dans l'image 1, tout en gardant la belle apparence des symboles comme sur la photo 2? Désolé, je sais que c'est b Asic mais je ne peux pas obtenir ce que je veux, après des heures de recherche .. Merci!

Répondre

2

La sortie imprimée me fait penser qu'il existe une base de données que vous avez attachée. La connexion de dataframes est une idée BAD. Au lieu d'apprendre à utiliser with qui leur permet de saisir les noms de base numericized (en supposant que vous n'avez pas déjà mis des valeurs de caractères là-bas). Pourrait aussi utiliser 1:nrow(dfrm) pour obtenir une séquence numérique est passé à 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")) 

Rajouter l'axe avec:

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

.. et laisser le XLIM. Cela n'a aucun sens (pour moi de toute façon) enter image description here.

+0

Bien noté, c'est une aide précieuse, je n'oublierai pas. Merci beaucoup d'avoir fourni une réponse aussi claire sur une question qui n'était pas si sexy ... Tout ceci est utile! – den