J'ai exécuté quatre programmes en a, b, c, d
parallèle sur deux machines différentes X
et Y
séparément pendant 10 fois. Ce qui suit est un échantillon des données. Les temps d'exécution (millisecondes) des 10
exécutions de chaque programme sont indiqués sous leurs noms respectifs.
Machine-X:
a b c d
29 40 21 18
28 43 20 18
30 49 20 28
29 50 19 19
28 51 21 19
29 41 30 29
32 47 10 18
29 43 20 18
28 51 30 29
29 41 21 19
Machine-Y:
a b c d
16 24 19 18
16 24 19 18
16 23 19 18
16 24 19 18
16 24 19 18
16 22 19 18
16 24 19 18
16 24 19 18
16 24 19 18
16 24 19 18
J'ai besoin de créer des graphiques pour visualiser les éléments suivants:
- Comparez les performances de chaque programme (c'est-à-dire le temps d'exécution) sur les machines X et Y.
- Comparez la variation des temps d'exécution de chaque programme sur les machines X et Y
- Quelle machine est juste pour fournir des ressources informatiques à chaque programme?
- Comparez les temps d'exécution totaux (a + b + c + d) des quatre programmes de chaque exécution sur les machines X et Y.
- Comparez la variation des temps d'exécution totaux des quatre programmes sur les 10 exécutions.
Pour 1 et 2, j'ai fait la figure A, la figure B est pour 3 et la figure C est pour 4 et 5. Cependant, je ne suis pas satisfait car il y a trois graphiques et il est difficile d'adapter les trois graphiques dans mon papier. De plus, je pense que nous pouvons produire mieux que ceux-ci. J'apprécie vraiment si quelqu'un m'aide à dessiner un ou deux beaux graphiques au lieu de trois en R tout en satisfaisant mes exigences. Veuillez voir ci-dessous le code R que j'ai utilisé pour produire ces graphiques.
Figure A:
Figure B: L'axe X montre les exécutions, l'axe Y montre les temps d'exécution des quatre programmes dans une exécution particulière.
Figure C:
Code R
> pdf("Figure A.pdf")
> par(mfrow=c(1,2))
> boxplot(x,boxwex=0.4, ylim=c(15, 60))
> mtext("Time", side=2, line=2)
> mtext("Running times of each program in 10 runs", side=3, line=2, at=6,cex=1.4)
> mtext("Machine X", side=3, line=0.5, at=2,cex=1.1)
> boxplot(y,boxwex=0.4, ylim=c(15, 60))
> mtext("Machine Y", side=3, line=0.4, at=2,cex=1.1)
> dev.off()
> pdf("Figure B.pdf")
> par(mfrow=c(1,2))
> boxplot(t(x),boxwex=0.4, ylim=c(0,50))
> mtext("Run Number", side=1, line=2, at=12, cex=1.2)
> mtext("Fairness", side=3, line=2, at=12,cex=1.4)
> mtext("Machine X", side=3, line=0.5, at=5,cex=1.1)
> boxplot(t(y),boxwex=0.4, ylim=c(0,50))
> mtext("Machine Y", side=3, line=0.4, at=5,cex=1.1)
> dev.off()
> pdf("Figure C.pdf")
> par(mfrow=c(1,2))
> barplot(t(x), ylim=c(0,150),names=1:10,col=mycolor)
> mtext("Run Number", side=1, line=2, at=14, cex=1.2)
> mtext("Total Running-Times in 10 Runs", side=3, line=2, at=14, cex=1.2)
> mtext("Machine X", side=3, line=0.5, at=5,cex=1.1)
> barplot(t(y), ylim=c(0,150), names=1:10,col=mycolor)
> mtext("Machine Y", side=3, line=0.5, at=5,cex=1.1)
> legend("topright",legend=c("a","b","c","d"),fill=mycolor,cex=1.1)
> dev.off()
la source
Les graphiques vous permettent de raconter une histoire, de faire tourner les données de la manière que vous souhaitez que le lecteur interprète vos résultats. Quel est le message à retenir? Que voulez-vous garder dans leur esprit? Déterminez ce message, puis réfléchissez à la manière d'en faire une figure.
Dans vos intrigues, je ne sais pas quel message je devrais apprendre et vous me donnez trop de données brutes --- Je veux des résumés efficaces, pas les données elles-mêmes.
Pour le graphique 1, je demanderais, quelles comparaisons voulez-vous faire? Les graphiques que vous avez illustrent les temps d'exécution d'un programme à l'autre pour un ordinateur donné. Il semble que vous souhaitiez effectuer des comparaisons entre ordinateurs pour un programme donné. Si tel est le cas, vous souhaitez que les statistiques du programme a sur l'ordinateur x soient dans le même tracé que les statistiques du programme a sur l'ordinateur y. Je mettrais les 8 cases dans vos deux boxplots dans la même figure, ordonné hache, ay, bx, par, ... pour faciliter la comparaison que vous faites vraiment.
Il en va de même pour l'intrigue 2, mais je trouve cette intrigue étrange. Vous montrez essentiellement chaque point de données que vous avez --- une case pour chaque série et une série n'a que 4 observations. Pourquoi ne pas simplement me donner une boîte à moustaches des temps d'exécution totaux pour l'ordinateur x et un pour l'ordinateur y?
La même critique «trop de données» s'applique également à votre dernière intrigue. Le tracé 3 n'ajoute aucune nouvelle information au tracé 2. Je peux obtenir le temps global si je multiplie simplement le temps moyen par 4 dans le tracé 2. Ici aussi, vous pouvez tracer une boîte pour chacun des ordinateurs x et y, mais ceux-ci sera littéralement des multiples de l'intrigue que j'ai proposé de remplacer l'intrigue 2.
Je suis d'accord avec @Andy W que l'ordinateur y n'est pas si intéressant et peut-être voulez-vous simplement l'indiquer et l'exclure des parcelles par souci de concision (bien que je pense que les suggestions que j'ai faites peuvent vous aider à réduire ces parcelles). Cependant, je ne pense pas que les tableaux soient de très bonnes façons de procéder.
la source
Vos tracés me semblent corrects, et si vous avez des contraintes d'espace, vous pouvez les placer tous dans un seul tracé au lieu de trois tracés séparés (par exemple, utilisez-les
par(mfrow=c(3,2))
et sortez-les simplement sur le même appareil).Il n'y a cependant pas grand-chose à signaler
Machine Y
, il n'a littéralement aucune variation, sauf pour le programmeb
. Je pense que les graphiques sont instructifs pour voir non seulement combien de temps les temps de fonctionnement sont longs,Machine X
mais aussi combien les temps de fonctionnement varient.Si c'est vraiment votre cas d'utilisation, ce sont des données si simples qui placent toutes les données dans un tableau seraient suffisantes pour démontrer la différence entre les machines (bien que je pense que les graphiques sont toujours utiles si vous pouvez vous permettre de les placer dans le document également).
la source