7
votes

points de parcelle maximale dans R?

J'ai rencontré un certain nombre de situations où je veux tracer plus de points que je devrais vraiment être - le principal principal est que lorsque je partage mes parcelles avec des personnes ou les intégrer dans des papiers, ils occupent trop d'espace. Il est très simple d'échantillonner de manière aléatoire des rangées dans un fichier de données.

Si je veux un échantillon vraiment aléatoire pour une parcelle de point, il est facile de dire: P>

ccdf <- function(myList,density=FALSE)
{
  # generates the CCDF of a list or vector
  freqs = table(myList)
  X = rev(as.numeric(names(freqs)))
  Y =cumsum(rev(as.list(freqs)));
  data.frame(x=X,count=Y)
}
qplot(x,count,data=ccdf(rlnorm(10000,3,2.4)),log='xy')


2 commentaires

Bonjour Rob, Dirk - Je veux clarifier que je ne cherche pas un moyen de faire face à la surplovement en utilisant une méthode de visualisation différente. Je veux spécifiquement faire une parcelle du point que je peux intégrer dans un papier latex comme graphique vectoriel évolutif. La façon dont j'aimerais faire cela est de réduire le nombre de points de parcelle nécessaires pour transmettre mes données.


Ensuite, le sous-échantillonnage peut être votre meilleur choix. Cela peut bien sûr être fait avec un échantillonnage «non uniforme», vous pouvez donc garder plus de points (ou même tous) de la queue, mais vous pouvez vous permettre de réduire considérablement la partie principale. Mais cela semble spécifique à un problème afin que vous puissiez devoir le préparer vous-même.


4 Réponses :


8
votes

J'ai tendance à utiliser des fichiers PNG plutôt que des graphiques basés sur des vecteurs tels que PDF ou EPS pour cette situation. Les fichiers sont beaucoup plus petits, bien que vous perdez la résolution.

Si c'est une diffamation plus classique, utilisez également des couleurs semi-transparentes, ainsi que la résolution du problème de tracé. Par exemple, P>

x <- rnorm(10000); y <- rnorm(10000)
qplot(x, y, colour=I(alpha("blue",1/25)))


0 commentaires

5
votes

Au-delà des suggestions de Rob, une fonction de parcelle que j'aime comme il fait que "l'éclaircie" pour vous est hexbin ; Un exemple est à la galerie R graphique R .


1 commentaires

Ou, avec ggplot2, geom = "hex"



4
votes

Voici une solution possible pour la parcelle descendante par rapport à l'axe X, si elle est transformée. IT BOG transforme l'axe des x, autour de cette quantité et choisit la valeur médiane x dans la corbeille: xxx

à l'aide de la définition de CCDF () d'en haut, Nous pouvons ensuite comparer l'intrigue d'origine du CCDF de la distribution avec la version rédigée: xxx

 xxx

 xxx

en PDF Format, l'intrigue d'origine occupe 640K et les versions rédigées occupent 20k et 8K, respectivement.


1 commentaires

Plutôt que d'arrondir, on pourrait aussi plus faire quelque chose comme: groupe = coupé (journal (données $ x), b = maxpoints)



2
votes

Je fais des fichiers image (périphériques PNG ou JPEG) comme Rob déjà mentionné, ou je ' d faire un Histogramme 2D. une alternative à l'histogramme 2D est un Diffus de diffusion lissée , il fait un graphique similaire mais a une coupure plus douce de des régions denses aux régions d'espace.

Si vous n'avez jamais vu additifateur avant, ça vaut un voir. Il a des graphismes très sympas générés en R avec des images et un code d'exemple. P>

voici le code d'échantillon de la Addictedtor Site: P>

Histogramme 2-D: P>

library("geneplotter")  ## from BioConductor
require("RColorBrewer") ## from CRAN

x1  <- matrix(rnorm(1e4), ncol=2)
x2  <- matrix(rnorm(1e4, mean=3, sd=1.5), ncol=2)
x   <- rbind(x1,x2)

layout(matrix(1:4, ncol=2, byrow=TRUE))
op <- par(mar=rep(2,4))
smoothScatter(x, nrpoints=0)
smoothScatter(x)
smoothScatter(x, nrpoints=Inf,
              colramp=colorRampPalette(brewer.pal(9,"YlOrRd")),
              bandwidth=40)
colors  <- densCols(x)
plot(x, col=colors, pch=20)

par(op)


1 commentaires

Pouvez-vous vous aider à trouver comment localiser les coordonnées du point minimal dans plusieurs lignes Graphique à l'aide de R, par exemple, si la coordination du point minimal est (17. 2.333), comment puis-je localiser cette coordniate uniquement dans l'intrigue utilisant R? Merci beaucoup pour votre aide!