Nous pouvons supposer que nous avons un fichier CSV et nous voulons un tracé de ligne très basique avec plusieurs lignes sur un tracé et une légende simple.
Nous pouvons supposer que nous avons un fichier CSV et nous voulons un tracé de ligne très basique avec plusieurs lignes sur un tracé et une légende simple.
Réponses:
La façon la plus simple est d'utiliser R
Utilisez read.csv
pour entrer les données dans R, puis utilisez une combinaison des commandes plot
etline
Si vous voulez quelque chose de vraiment spécial, alors regardez les bibliothèques ggplot2 ou lattice .
Dans ggplot2
les commandes suivantes, vous devriez commencer.
require(ggplot2)
#You would use read.csv here
N = 10
d = data.frame(x=1:N,y1=runif(N),y2=rnorm(N), y3 = rnorm(N, 0.5))
p = ggplot(d)
p = p+geom_line(aes(x, y1, colour="Type 1"))
p = p+geom_line(aes(x, y2, colour="Type 2"))
p = p+geom_line(aes(x, y3, colour="Type 3"))
#Add points
p = p+geom_point(aes(x, y3, colour="Type 3"))
print(p)
Cela vous donnerait l'intrigue suivante:
Tracé de ligne http://img84.imageshack.us/img84/6393/tmpq.jpg
Enregistrement des parcelles dans R
Enregistrer des tracés dans R est simple:
#Look at ?jpeg to other different saving options
jpeg("figure.jpg")
print(p)#for ggplot2 graphics
dev.off()
Au lieu de jpeg
, vous pouvez également enregistrer en tant que pdf
fichier PostScript:
#This example uses R base graphics
#Just change to print(p) for ggplot2
pdf("figure.pdf")
plot(d$x,y1, type="l")
lines(d$x, y2)
dev.off()
m <- melt(d, id = "x"); qplot(variable, value, data = m, colour = variable)
Il est difficile de dépasser R pour les graphiques. Vous pouvez faire ce que vous voulez en 3 lignes. Par exemple, en supposant que le fichier csv comporte quatre colonnes:
x <- read.csv("file.csv")
matplot(x[,1],x[,2:4],type="l",col=1:3)
legend("topleft",legend=c("A","B","C"),lty=1,col=1:3)
R est certainement la réponse. Je voudrais simplement ajouter à ce que Rob et Colin ont déjà dit:
Pour améliorer la qualité de vos tracés, vous devriez envisager d'utiliser le package Cairo pour le périphérique de sortie. Cela améliorera considérablement la qualité des graphiques finaux. Vous appelez simplement la fonction avant de tracer et elle redirige vers Le Caire en tant que périphérique de sortie.
Cairo(600, 600, file="plot.png", type="png", bg="white")
plot(rnorm(4000),rnorm(4000),col="#ff000018",pch=19,cex=2) # semi-transparent red
dev.off() # creates a file "plot.png" with the above plot
Enfin, en termes de publication dans une publication, c'est le rôle qui Sweave
joue. Cela rend la combinaison de tracés avec votre papier une opération triviale (et a l'avantage supplémentaire de vous laisser avec quelque chose de reproductible et compréhensible). À utiliser cacheSweave
si vous avez des calculs de longue durée.
Mon outil préféré est Python avec mathplotlib
Les avantages:
Plus précisément, pour différents formats de fichiers comme svg et eps, utilisez le paramètre format de savefig
Un exemple: input.csv
"Ligne 1", 0,5,0,8,1,0,0,9,0,9 "Ligne 2", 0,2,0,7,1,2,1,1,1,1
Code:
import csv
import matplotlib.pyplot as plt
legends = []
for row in csv.reader(open('input.csv')):
legends.append(row[0])
plt.plot(row[1:])
plt.legend(legends)
plt.savefig("out.svg", format='svg')
Jetez un œil aux exemples de galeries pour trois bibliothèques de visualisation populaires:
Pour les deux premiers, vous pouvez même afficher le code source associé - le truc simple est simple, pas beaucoup de lignes de code. Le cas préfuse aura le code passe-partout Java requis. Les trois prennent en charge un certain nombre de backends / périphériques / moteurs de rendu (pdf, ps, png, etc.). Les trois sont clairement capables de graphismes de haute qualité.
Je pense que cela se résume à peu près à la langue dans laquelle vous êtes le plus à l'aise de travailler. Allez-y.
Une autre option est Gnuplot
La facilité est relative. Aucun outil n'est facile tant que vous ne savez pas comment l'utiliser. Certains outils peuvent sembler plus difficiles au début, mais vous offrent un contrôle beaucoup plus fin une fois que vous les maîtrisez.
J'ai récemment commencé à faire mes tracés dans pgfplots . Étant un package LaTeX (en plus tikz
), il est particulièrement bon pour rendre les choses belles. Les polices seront cohérentes avec le reste du document et il est beaucoup plus facile d'intégrer visuellement vos tracés. Ce n'est pas l'option la plus simple pour faire des tracés, mais c'est un moyen assez facile de faire des tracés qui sont certainement de qualité publication.