17 votos

¿Cuál es la manera más fácil de crear con calidad de publicación parcelas bajo Linux?

Podemos asumir que tenemos un archivo CSV, y le desea un muy básico de la línea de parcela con varias líneas sobre una parcela y una simple leyenda.

14voto

Eggs McLaren Puntos 945

La forma más fácil es usar R

Uso read.csv a introducir los datos en R, entonces el uso de una combinación de la plot y line comandos

Si quieres algo realmente especial, y luego mirar las bibliotecas ggplot2 o de celosía.

En ggplot2 los siguientes comandos deben empezar.

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 le daría el siguiente diagrama:

Line plot

Ahorro de grácos en R

Ahorro de grácos 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 se puede guardar como un pdf o archivo 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()

13voto

Senseful Puntos 116

Es difícil ir más allá de R para los gráficos. Usted podría 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)

12voto

Jon Galloway Puntos 28243

R es definitivamente la respuesta. Sólo quiero agregar a lo que Rob y Colin ha dicho:

Para mejorar la calidad de sus parcelas, usted debe considerar el uso de el Cairo paquete para el dispositivo de salida. Que 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 el 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 poner en una publicación, que es el papel que Sweave juega. Esto hace que la combinación de las parcelas con su papel de una operación trivial (y tiene el beneficio añadido de salir con algo que es reproducible y comprensible). Uso cacheSweave si usted tiene el tiempo de ejecución cálculos.

11voto

Scott Cowan Puntos 156

Mi herramienta favorita es Python con mathplotlib

Las ventajas:

  • Inmediata de la exportación desde el entorno donde hago mis experimentos en la
  • Apoyo para la scipy/numpy estructuras de datos
  • Sintaxis Familiar/opciones (matlab fondo)
  • Látex completo soporte para etiquetas o leyendas etc. Así mismo la composición como en el resto de su documento!

Específicamente, para los diferentes formatos de archivo como svg y eps, utilice el parámetro de formato de savefig

Un ejemplo: de entrada.csv

"La línea de 1",0.5,0.8,1.0,0.9,0.9
"La línea de 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')

6voto

Omar Kooheji Puntos 384

Echa un vistazo a la muestra de las galerías en tres populares de visualización de las bibliotecas:

Para los dos primeros, incluso se puede ver el código fuente asociado -- las cosas simples es simple, no muchas líneas de código. El prefuse caso tendrán el requisito de Java de código repetitivo. Tres admiten un número de motores/dispositivos/programas de renderizado (pdf, ps, png, etc). Todos los tres son claramente capaces de gráficos de alta calidad.

Creo que prácticamente se reduce a que el lenguaje se siente usted más cómodo trabajando. Vaya con eso.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X