2 votes

Comment dessiner un graphique avec une position esquivée ?

Je suis un novice en matière de R. Je vais essayer d'être aussi bref et simple que possible. Actuellement, j'essaie de relier des points entre deux conditions en fonction d'une autre condition, le tout sur un seul axe x discret.

Vous trouverez ci-dessous quelques données de test et ma tentative de tracer quelques données.

set.seed(42)

# Test case data
mydf1 <- tibble(
  xx = rep('myLabel', 8),
  yy = rnorm(8),
  grp = rep(c(1, 2), each = 4),
  cond = rep(c('a', 'b', 'c', 'd'), length.out = 8)
)

ggplot(mydf1, aes(x = xx, y = yy, col = factor(grp))) +
  geom_point(position = position_dodge(width = 0.9)) + 
  geom_path(position = position_dodge(width = 0.9), aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for geom_path and position_dodge")

enter image description here

D'après ce que je peux dire, il semble que la position_dodge soit appliquée après le tirage. Existe-t-il un moyen de modifier ce comportement ? ou d'atteindre l'objectif global de relier ces points de cette manière ?

Merci pour votre temps.

EDIT : détails.

EDIT2 :

Je voudrais capturer une relation avant et après entre grp basé sur 4 conditions dans une seule grande condition principale.

2voto

Vous pourriez tracer un axe des x catégorique.

ggplot(mydf1, aes(x = cond, y = yy, col = factor(grp))) +
  geom_point() + 
  geom_path(aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for categorical X-axis")

enter image description here

Par ailleurs, si vous avez besoin d'une comparaison entre plusieurs dimensions catégorielles mappées sur l'axe des x, vous pouvez essayer les facettes.

 ggplot(mydf1, aes(x = cond, y = yy, col = factor(grp))) +
  geom_point() + 
  geom_path(aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for Categorical X-axis and Facets") +
  facet_wrap(~cond)

enter image description here

2voto

jay.sf Points 8160

C'est probablement ce que vous voulez.

set.seed(42)
library(ggplot2)
ggplot(mydf1, aes(x = grp, y = yy, col = factor(grp))) +
  geom_point() +
  geom_path(aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for geom_path and position_dodge") +
  xlim(c(.5, 2.5)) +
  labs(color = "Group", x = "myLabel", y = "yy") +
  theme(axis.text.x=element_blank(),
        axis.ticks.x=element_blank())

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X