2 votes

Tracez chaque ligne de données sur toutes les colonnes (graphique spaghetti).

J'ai un petit jeu de données composé de 16 lignes et de 5 colonnes. Cet ensemble de données est présenté en dessous de l'image, et peut également être importé dans R en utilisant :

  d <- read.csv("https://raw.githubusercontent.com/izeh/i/master/De.csv")[-1]

Objectif : Mon objectif est de tracer chaque ligne de données sur toutes les colonnes ( Trace de spaghetti ) dans la base R. Par exemple, pour 3 lignes (sur un total de 16 lignes), je m'attends à quelque chose comme le suivant photo ci-dessous.

Question : J'ai essayé matplot() sans succès, existe-t-il un BASE R solution ?

matplot(d)

enter image description here

L'ensemble des données :

   GolBkgnd DesnTst Result PrdctConc PostBrd
1         4       4      3         5       5
2         2       3      5         3       5
3         5       4      3         5       4
4         3       4      4         1       3
5         5       3      2         4       4
6         5       4      5         5       4
7         5       3      3         1       5
8         5       4      5         5       4
9         5       3      2         1       3
10        5       4      3         4       5
11        5       3      1         4       3
12        3       4      3         4       5
13        5       3      4         2       5
14        4       4      3         5       5
15        5       3      3         5       4
16        5       4      4         3       5

2voto

MrFlick Points 34459

Avec la base R, il semble que vous ayez juste à transposer avec t() et dessinez vous-même l'axe

matplot(t(d), type="l", xaxt="n")
axis(1, seq_along(d), names(d))

enter image description here

0voto

Melissa Key Points 3533

Voici une solution utilisant tidyverse

library(tidyverse)

d %>%
  mutate(index = 1:16) %>%
  gather(column, value) %>%
  ggplot(aes(column, value, color = index, group = index)) + 
  geom_lines()

0voto

BondedDust Points 105234

Vous faites un diagramme appelé "tracé de coordonnées parallèles". Le fait que les lignes finissent toutes par se chevaucher me pousse à suggérer d'utiliser la gigue pour les séparer légèrement au hasard :

library(MASS)
png()
parcoord( sapply(d, jitter))
dev.off()

enter image description here

On peut dire que le paquet MASS est un paquet "de base"-R. Si vous avez besoin de l'identifier par des couleurs, alors " :

parcoord( sapply(d, jitter), col=1:16)

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