gigue geom_line()
Est-il un moyen de jitter les lignes dans geom_line()
? Je sais que ça défie le but de ce complot, mais si vous avez un terrain avec quelques lignes et ne les aime tous à montrer qu'elle pourrait être à portée de main. Peut-être une autre solution à ce visibilité problème.
Veuillez voir ci-dessous pour le code,
A <- c(1,2,3,5,1)
B <- c(3,4,1,2,3)
id <- 1:5
df <- data.frame(id, A, B)
# install.packages(reshape2)
require(reshape2) # for melt
dfm <- melt(df, id=c("id"))
# install.packages(ggplot2)
require(ggplot2)
p1 <- ggplot(data = dfm, aes(x = variable, y = value, group = id,
color= as.factor(id))) + geom_line() + labs(x = "id # 1 is hardly
visible as it is covered by id # 5") + scale_colour_manual(values =
c('red','blue', 'green', 'yellow', 'black'))
p2 <- ggplot(subset(dfm, id != 5), aes(x = variable, y = value,
group = id, color= as.factor(id))) + geom_line() + labs(x = "id #
5 removed, id # 1 is visible") + scale_colour_manual(values =
c('red','blue', 'green', 'yellow', 'black'))
# install.packages(RODBC)
require(gridExtra)
grid.arrange(p1, p2)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer
et voir si cela fonctionne bien.
position_dodge()
afin d'éviter les chevauchements - voir ma réponse ci-dessousSi vous voulez juste pour empêcher les deux lignes qui se chevauchent exactement, il y a maintenant une meilleure façon: position_dodge(), qui "permet de régler la position en esquivant les chevauchements sur le côté". Ce n'est plus agréable que l'ajout d'un bougé de toute la ligne, même quand il n'est pas nécessaire.
Éviter ggplot2 lignes qui se chevauchent en utilisant exactement position_dodge()
Exemple de Code:
Grâce à
position_dodge()
, nous pouvons maintenant voir qu'il y a deux lignes dans l'intrigue, qui vient de se produire coïncident exactement:position_dodge
ne prend quewidth
paramètre sansheight
(version 2.2.1), de sorte qu'il n'est pas utilisable pour distinguer les barres horizontales dans ma pré-post-traitement spaghetti parcelle 🙁 Encore +1 pour vous, car il semble être le plus proche de la réponse dont j'ai besoin.J'ai tendance à utiliser les différents styles de ligne, de sorte que, disons, une solide ligne bleue "perce" une ligne rouge en pointillés sur le dessus de cela.
Là encore, cela dépend de ce que vous voulez transmettre au lecteur. Gardez à l'esprit d'abord et avant tout que données devraient être des points et théorie des lignes à moins que cela rend les choses encombré. À moins d'y et les valeurs de x sont identiques, il sera plus facile de voir les points. (ou vous pourriez demander l'existant
jitter
fonction pour les valeurs de x)Ensuite, si vous voulez juste pour montrer que les séries sont dans le "bundle" et qui sont des valeurs aberrantes, chevauchement n'est pas grave car il est très peu probable que deux valeurs aberrantes sera quasi-égalité.
Si vous voulez montrer un tas de quasi-égalité s'exécute, vous préférerez peut-être (c'est-à-dire à vos lecteurs de mieux comprendre) pour tracer les deltas contre une moyenne plutôt que les valeurs réelles.
y_jit<-jitter(y_data)
et/ou même pourx_data
et nourrir les vacillant données de votre code de traçage. Si vous voulez "jitter" lignes, j'irais w/ baptiste de la solution.