5 votos

La mejor manera de trazar una gran cantidad de datos discretos con 2 variables en R

Estoy tratando de ver la relación entre dos variables (digamos A y B) en un gráfico en RStudio. Ambas son discretas y van de 1 a 10. Sin embargo, tengo 1000s de puntos de datos, así que dado que sólo hay 100 espacios posibles en los que puede haber un punto, casi todos los lugares posibles en un gráfico tienen un punto.

¿Cómo puedo representar 1000s de puntos en un gráfico como este, y al mismo tiempo ser capaz de ver cuántos hay en cada punto también?

5voto

Lewian Puntos 296

Las parcelas en mosaico son una buena forma de hacerlo. https://cran.r-project.org/web/packages/ggmosaic/vignettes/ggmosaic.html

3voto

icelava Puntos 548

Respondiendo a mi propia pregunta para sacarla de la cola de "Sin respuesta" (¡después de dieciocho meses allí!) ...


La correspondencia por correo electrónico con un matemático experto confirma que el resultado de la transformación prescrita de los ángulos diedros es equivalente al resultado de aplicar la transformación a las longitudes de las aristas correspondientes. También se confirma: la verificación parece implicar invariablemente un largo y duro trabajo simbólico.

Algunas notas...

Dejemos que $(a_\star, b_\star, c_\star, a^\prime_\star, b^\prime_\star, c^\prime_\star)$ sean las longitudes de las aristas de un tetraedro después de una transformación de los ángulos diedros. No es también terriblemente difícil verificar estas relaciones: $$\begin{align} \overline{b_\star}\overline{b^\prime_\star} + \overline{c_\star}\overline{c^\prime_\star} &= \overline{b}\overline{b^\prime} + \overline{c}\overline{c^\prime} \qquad\qquad \overline{b_\star}\overline{b^\prime_\star} - \overline{c_\star}\overline{c^\prime_\star} = -\ddot{b}\ddot{b^\prime} + \ddot{c}\ddot{c^\prime} \\ \ddot{b_\star}\ddot{b^\prime_\star} + \ddot{c_\star}\ddot{c^\prime_\star} &= \ddot{b}\ddot{b^\prime} + \ddot{c}\ddot{c^\prime} \qquad \qquad \ddot{b_\star}\ddot{b^\prime_\star} - \ddot{c_\star}\ddot{c^\prime_\star} = -\overline{b}\overline{b^\prime} + \overline{c}\overline{c^\prime} \\ \ddot{b_\star}\ddot{c^\prime_\star} + \ddot{c_\star}\ddot{b^\prime_\star} &= \ddot{b}\ddot{c^\prime} + \ddot{c}\ddot{b^\prime} \qquad\qquad \ddot{b_\star}\ddot{c_\star} + \ddot{b^\prime_\star}\ddot{c^\prime_\star} = \phantom{-}\ddot{b}\ddot{c} + \ddot{b^\prime}\ddot{c^\prime} \end{align}$$

donde $\overline{x} := \sinh{x}$ y $\ddot{x} := \cosh{x}$ .

Las dos primeras filas son simétricas en los pares de aristas $\{b_\star,b^\prime_\star\}$ y $\{c_\star, c^\prime_\star\}$ y no pueden distinguir por sí mismos esos valores. En el mejor de los casos, implican $$ \{2 b_\star, 2 b^\prime_\star\} = \pm \left( - b + b^\prime \right) + c + c^\prime \qquad \{2 c_\star, 2 c^\prime_\star\} = b + b^\prime \pm \left(- c + c^\prime \right) $$ La tercera fila rompe alguna simetría simbólica, y podemos deducir que $b_\star$ 's " $\pm$ " coincide con el de $c_\star$ (y que $b^\prime_\star$ Los partidos de la $c^\prime_\star$ 's).

Para resolver la ambigüedad del signo final, se puede comprobar que $b+b_\star = c+c_\star \;(= b^\prime + b^\prime_\star = c^\prime+ c^\prime_\star)$ . Una estrategia complicada desde el punto de vista computacional consiste en demostrar que $\tanh(b+b_\star) = \tanh(c+c_\star)$ . (Para mí, el objetivo es $\tanh$ resultó ser menos difícil que considerar $\sinh$ o $\cosh$ .)

3voto

Dave Puntos 76

La biblioteca ggplot2 debería manejar algo así. Hay ejemplos del código específico en Internet. Me limitaré a abordar la idea, ya que esto es CV.SE, no SO.

Yo representaría los puntos en un marco de datos con tres columnas. Una columna tendría la coordenada x, una columna tendría la coordenada y, una columna tendría el recuento de cuántas instancias de ese par x-y hay. A continuación, puede utilizar un color para denotar la prevalencia de un punto, que ggplot2 puede hacer.

3voto

NetMage Puntos 33

Una posible opción es añadir un poco de ruido aleatorio a cada observación. De este modo, se solaparán menos puntos.

Puedes añadirlo directamente y utilizar las capacidades básicas de trazado de R o buscar la capa de tipo jitter que viene con el paquete GGplot que añade el ruido automáticamente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X