ggplot avec des chaînes sur l'axe des x
Je suis en train de dessiner une intrigue avec plusieurs courbes en elle. L'axe des x ne sont pas des valeurs numériques, mais les Chaînes.
Cela fonctionne très bien (comme dans comment tracer toutes les colonnes d'un bloc de données dans la R):
require(ggplot2)
df_ok <- rbind(data.frame(x=4:1,y=rnorm(4),d="d1"),data.frame(x=3:1,y=rnorm(3),d="d2"))
ggplot(df_ok, aes(x,y)) + geom_line(aes(colour=d))
Mais mes données ressemble à ceci:
require(ggplot2)
df_nok <- rbind(data.frame(x=c("four","three","two","one"),y=rnorm(4),d="d1"),data.frame(x=c("three","two","one"),y=rnorm(3),d="d2"))
ggplot(df_nok, aes(x,y)) + geom_line(aes(colour=d))
Je reçois le message d'erreur geom_path: Chaque groupe sont constitués d'une seule observation. Avez-vous besoin d'ajuster le groupe de l'esthétique?.
Même si le graphique des lignes n'apparaissent pas, l'axe sont tracées, et l'Axe des x contient les Étiquettes correctes, mais aussi dans les mauvais ordre.
Aucune idée de comment la parcelle ce aussi facile que possible? (À noter également le manque valeurs de x pour certaines séries).
source d'informationauteur fabb
Vous devez vous connecter pour publier un commentaire.
Votre problème est que le
x
variable est un facteur. Ainsi, la modification de vos données image et en fairex
un double:Parcelle normal
mais modifier l'axe des x mise à l'échelle de manière explicite:
Changer le nom de votre variable, essayez quelque chose comme:
Vous pouvez convaincre ggplot pour dessiner des lignes par l'ajout d'un groupe factice,
Voir aussi http://kohske.wordpress.com/2010/12/27/faq-geom_line-doesnt-draw-lines/
Ajouter dans la
group
esthétique (c'est redondant, je sais, mais beaucoup plus simple que de re-pêche à la dandinette les étiquettes de l'axe).C'est vrai que l'axe des x est probablement pas dans l'ordre que vous voulez. Comme le fait remarquer @csgillespie vous pouvez résoudre ce problème en en faisant un facteur