2010-10-24 6 views
1

J'ai les résultats d'un sondage. J'essaie de créer un graphique affichant la relation de deux variables: "Q1" et "Q9.1". "Q1" est l'indépendant et "Q9.1" est le dépendant. Les deux variables ont des réponses de questions d'échelle similaires: -2, -1,0,1,2. Une parcelle typique place les réponses les unes sur les autres - pas très intéressant ou informatif. Je pensais que l'hexbin serait le chemin à parcourir. Les données sont en lpp. Je n'ai pas pu utiliser "Q1" et "Q9.1" pour x et y. Cependant:hexbin de base avec R?

> is.numeric("Q1") 
[1] FALSE 
q1.num <- as.numeric("Q1") 
Warning message: 
NAs introduced by coercion 

Les valeurs Q1 sont (des centaines de cas de): -2, -1,0,1,2

Comment puis-je faire un graphique hexbin avec ces données? Y a-t-il un autre graphique que je devrais considérer?

Messages d'erreur jusqu'à présent:

Warning messages: 
1: In xy.coords(x, y, xl, yl) : NAs introduced by coercion 
2: In xy.coords(x, y, xl, yl) : NAs introduced by coercion 
3: In min(x) : no non-missing arguments to min; returning Inf 
4: In max(x) : no non-missing arguments to max; returning -Inf 
5: In min(x) : no non-missing arguments to min; returning Inf 
6: In max(x) : no non-missing arguments to max; returning -Inf 
+0

Il peut être utile de fournir des exemples de données afin que nous puissions voir quelle structure il a actuellement. Une fonction utile pour cela est dput (...) qui produit une description qui peut être utilisée pour recréer un objet. – PaulHurleyuk

+0

@Donnied; Vous devez d'abord trier vos données. Quelque chose ne va pas ici; vous introduisez des NA quand vous contractez des valeurs numériques, pendant le traçage, 'xy.coords()' crée des NA de sorte que vous n'ayez pas de données non-NA. Jetez un oeil à la sortie de 'str (Q1)' etc pour toutes vos données - sont-ils stockés sous forme numérique? Enfin, vos deux premières lignes de R sont fausses; vous ne faites pas référence à un objet par son nom ** cité **. Si vous voulez voir si 'Q1' est numérique, vous faites' is.numeric (Q1) '. Qu'est-ce que vous avez fait est de demander si la chaîne '" Q1 "' est numérique, ce qui est inévitablement FAUX. Vous ne l'avez pas fait dans l'appel 'plot()', n'est-ce pas? –

+0

Je m'excuse. Je viens de commencer à utiliser R. J'ai un fichier csv que j'ai lu en tant que données. "Q1" est l'un des en-têtes/variables de la colonne. – Donnied

Répondre

3

Que diriez-vous de prendre une approche légèrement différente? Pourquoi ne pas considérer vos réponses comme des facteurs plutôt que comme des chiffres? Vous pouvez utiliser quelque chose comme ça, alors, pour obtenir une représentation potentiellement utile de vos données:

 
# Simulate data for testing purposes 
q1 = sample(c(-2,-1,0,1,2),100,replace=TRUE) 
q9 = sample(c(-2,-1,0,1,2),100,replace=TRUE) 
dat = data.frame(q1=factor(q1),q9=factor(q9)) 
library(ggplot2) 
# generate stacked barchart 
ggplot(dat,aes(q1,fill=q9)) + geom_bar() 

Vous pouvez changer q1 et Q9 ci-dessus, en fonction de la vue des données que vous voulez.

+0

Cela a donné une barre solide. – Donnied

+0

Mes excuses ... Fonctionne très bien! Je vous remercie. – Donnied

+0

Super d'entendre que cela a fonctionné pour vous. – seandavi

2

Peut-être stat_binhex de ggplot2 pourrait trier celui-là pour vous?

En outre, je trouve scale_alpha utile pour traiter le surplaqué.

+0

J'aime vraiment le stat_binhex. Je ne peux pas trouver comment ajouter un titre si. labs, xl et yl ne fonctionnent pas. – Donnied

+0

pour marquer l'axe x, vous pouvez essayer: qplot (x, y, données = données, xlab = "mon étiquette") ou: ggplot (données, aes (x, y)) + geom_point() + scale_x_continuous ("mon label ") – radek

+1

Les fonctions' ylab() 'et' xlab() 'ajoutent aussi des étiquettes d'axe, par ex.'ggplot (données, aes (x, y)) + geom_point() + ylab (" mon label ")' –

Questions connexes