Kami dapat berasumsi bahwa kami memiliki file CSV dan kami ingin plot garis yang sangat mendasar dengan beberapa baris pada satu plot dan legenda sederhana.
Kami dapat berasumsi bahwa kami memiliki file CSV dan kami ingin plot garis yang sangat mendasar dengan beberapa baris pada satu plot dan legenda sederhana.
Jawaban:
Cara termudah adalah menggunakan R
Gunakan read.csv
untuk memasukkan data ke R, lalu gunakan kombinasi perintah plot
danline
Jika Anda menginginkan sesuatu yang benar-benar istimewa, maka lihatlah perpustakaan ggplot2 atau kisi .
Dalam ggplot2
perintah berikut harus Anda mulai.
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)
Ini akan memberi Anda plot berikut:
Alur plot http://img84.imageshack.us/img84/6393/tmpq.jpg
Menyimpan plot di R
Menyimpan plot di R mudah:
#Look at ?jpeg to other different saving options
jpeg("figure.jpg")
print(p)#for ggplot2 graphics
dev.off()
Alih-alih jpeg
, Anda juga dapat menyimpan sebagai pdf
file atau file tambahan:
#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)
Sulit untuk melewati R untuk grafis. Anda dapat melakukan apa yang Anda inginkan dalam 3 baris. Misalnya, dengan asumsi file csv memiliki empat kolom:
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 jelas jawabannya. Saya hanya akan menambahkan apa yang sudah dikatakan Rob dan Colin:
Untuk meningkatkan kualitas plot Anda, Anda harus mempertimbangkan menggunakan satu Kairo paket untuk perangkat output. Itu akan sangat meningkatkan kualitas grafis akhir. Anda cukup memanggil fungsi sebelum merencanakan dan mengalihkan ke Kairo sebagai perangkat output.
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
Terakhir, dalam hal memasukkannya ke dalam publikasi, itulah peran yang Sweave
dimainkan. Itu membuat menggabungkan plot dengan kertas Anda menjadi operasi sepele (dan memiliki manfaat tambahan meninggalkan Anda dengan sesuatu yang dapat direproduksi dan dimengerti). Gunakan cacheSweave
jika Anda memiliki perhitungan yang berjalan lama.
Alat favorit saya adalah Python dengan mathplotlib
Keuntungan:
Secara khusus, untuk berbagai format file seperti svg dan eps, gunakan parameter format savefig
Contoh: input.csv
"Baris 1", 0,5,0,8,1,0,0,9,0,9 "Jalur 2", 0.2.0.7.1.2.1.1.1.1.1
Kode:
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')
Lihatlah galeri sampel untuk tiga perpustakaan visualisasi populer:
Untuk dua yang pertama, Anda bahkan dapat melihat kode sumber yang terkait - hal-hal sederhana adalah sederhana, tidak banyak baris kode. Kasing prefuse akan memiliki kode Java boilerplate yang diperlukan. Ketiganya mendukung sejumlah backend / perangkat / renderers (pdf, ps, png, dll). Ketiganya jelas mampu grafis berkualitas tinggi.
Saya pikir itu cukup banyak bermuara pada bahasa mana yang paling nyaman bagi Anda. Ikutilah.
Opsi lain adalah Gnuplot
Mudah itu relatif. Tidak ada alat yang mudah sampai Anda tahu cara menggunakannya. Beberapa alat mungkin tampak lebih sulit pada awalnya, tetapi memberi Anda kontrol yang lebih halus setelah Anda menguasainya.
Saya baru-baru ini mulai membuat plot saya di pgfplots . Menjadi paket LaTeX (di atas tikz
), itu sangat bagus untuk membuat semuanya terlihat baik. Font akan konsisten dengan sisa dokumen dan lebih mudah untuk mengintegrasikan plot Anda secara visual. Ini bukan pilihan termudah untuk membuat plot, tetapi ini adalah cara yang lebih mudah untuk membuat plot yang tentu saja berkualitas publikasi.