Podemos suponer que tenemos un archivo CSV y queremos un diagrama de línea muy básico con varias líneas en un diagrama y una leyenda simple.
Podemos suponer que tenemos un archivo CSV y queremos un diagrama de línea muy básico con varias líneas en un diagrama y una leyenda simple.
Respuestas:
La forma más fácil es usar R
Use read.csv
para ingresar los datos en R, luego use una combinación de los comandos plot
yline
Si quieres algo realmente especial, mira las bibliotecas ggplot2 o lattice .
En ggplot2
los siguientes comandos debería comenzar.
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)
Esto te daría la siguiente trama:
Trazado de línea http://img84.imageshack.us/img84/6393/tmpq.jpg
Guardar parcelas en R
Guardar parcelas en R es sencillo:
#Look at ?jpeg to other different saving options
jpeg("figure.jpg")
print(p)#for ggplot2 graphics
dev.off()
En lugar de jpeg
's, también puede guardar como un pdf
archivo o 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)
Es difícil pasar a R por los gráficos. Podrías hacer lo que quieras en 3 líneas. Por ejemplo, suponiendo que el archivo csv tiene cuatro columnas:
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 es definitivamente la respuesta. Solo agregaría a lo que Rob y Colin ya dijeron:
Para mejorar la calidad de sus parcelas, debe considerar usar el paquete Cairo para el dispositivo de salida. Eso mejorará en gran medida la calidad de los gráficos finales. Simplemente llame a la función antes de trazar y redirige a El Cairo como dispositivo de salida.
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
Por último, en términos de ponerlo en una publicación, ese es el papel que Sweave
juega. Hace que la combinación de parcelas con su papel sea una operación trivial (y tiene el beneficio adicional de dejarlo con algo que es reproducible y comprensible). Úselo cacheSweave
si tiene cálculos de larga duración.
Mi herramienta favorita es Python con mathplotlib
Las ventajas:
Específicamente, para diferentes formatos de archivo como svg y eps, use el parámetro de formato de savefig
Un ejemplo: input.csv
"Línea 1", 0,5,0.8,1.0,0.9,0.9 "Línea 2", 0.2,0.7,1.2,1.1,1.1
Código:
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')
Eche un vistazo a las galerías de muestra de tres bibliotecas de visualización populares:
Para los dos primeros, incluso puede ver el código fuente asociado: lo simple es simple, no hay muchas líneas de código. El caso prefuso tendrá el código de repetitivo Java requerido. Los tres admiten una serie de backends / dispositivos / renderizadores (pdf, ps, png, etc.). Los tres son claramente capaces de gráficos de alta calidad.
Creo que se reduce a qué idioma te sientes más cómodo trabajando. Ve con eso.
Otra opción es Gnuplot
Fácil es relativo. Ninguna herramienta es fácil hasta que sepa cómo usarla. Algunas herramientas pueden parecer más difíciles al principio, pero le brindan un control mucho más detallado una vez que las domina.
Recientemente comencé a hacer mis tramas en pgfplots . Al ser un paquete LaTeX (además de tikz
), es particularmente bueno para hacer que las cosas se vean bien. Las fuentes serán consistentes con el resto del documento y es mucho más fácil integrar visualmente sus trazados. No es la opción más fácil de hacer trazados, pero es una forma bastante fácil de hacer trazados que ciertamente son de calidad de publicación.