2011-07-06 2 views
1

J'essaie de produire quelques diagrammes de dispersion à haute densité avec R. Quel paquet devrait être installé pour cela? Ou y a-t-il un autre moyen d'obtenir les parcelles?Quel package doit être installé dans R pour les diagrammes de dispersion avec binning logarithmique?

+1

liens aux exemples? Le paquet hexbin vient à l'esprit –

+2

@user, "Scatter plots" implique un tracé xy, tandis que "binning logarithmique" implique un type d'histogramme. Pouvez-vous être plus précis sur quel type d'intrigue vous recherchez? –

+0

@ bill_080 Je cherche un nuage de points, qui a un binning logarithmique. Le binning logarithmique consiste à créer des corbeilles de sorte que la longueur d'une corbeille soit un multiple de la longueur de celle qui la précède. Et oui j'avais trouvé le paquet hexbin mais je pense que ce n'est pas ce que je cherchais. Voici un lien vers un papier qui a des diagrammes de dispersion de haute densité faits avec binning logarithmique à la page 10. citeseerx.ist.psu.edu/viewdoc/... J'espère que cela aide à clarifier – user744121

Répondre

2

Si vous voulez vraiment un diagramme de dispersion à échelle logarithmique, alors voici comment les créer dans chacun des 3 systèmes de traçage.

D'abord, certaines données:

dfr <- data.frame(x = rlnorm(1e5), y = rlnorm(1e5)) 

Dans les graphiques de base:

with(dfr, plot(x, y, log = "xy")) 

Dans les graphiques en treillis:

library(lattice) 
p1 <- xyplot(y ~ x, dfr, scales = list(log = TRUE)) 
p1 

Dans graphiques ggplot2 (devez installer ce paquet + dépendances):

library(ggplot2) 
p2 <- ggplot(dfr, aes(x, y)) + 
    geom_point() + 
    scale_x_log10() + 
    scale_y_log10() 
p2 
+1

Bel exemple, mais pas du tout clair de la question de savoir si c'est ce que veut le PO ... –

+0

@Ben: D'accord. La question n'est pas claire alors je l'ai deviné. –

+0

@Ben et Richie: S'il vous plaît voir mes commentaires sur la question! – user744121

1

Je viens d'avoir du mal à essayer de tracer ces derniers récemment; et juste terminé en utilisant la fonction standard hist() avec un ensemble personnalisé de ruptures:

x <- your data 
nbreaks <- 50 # how many points do you want in your scatter plot 
breaks <- exp(seq(log(min(x)), log(max(x)), len=nbreaks)) 
hh <- hist(x, breaks, plot=FALSE) 
plot(hh$mids, hh$density, log="xy") 

I.e. créer un ensemble de ruptures exponentiellement réparties et générer l'histogramme, mais tracer manuellement les densités en donnant le contrôle sur les axes qui sont enregistrés.

Questions connexes