CSV dosyasına sahip olduğumuzu varsayabiliriz ve tek bir arsa üzerinde birkaç satır ve basit bir açıklama içeren çok temel bir çizgi grafiği isteriz.
CSV dosyasına sahip olduğumuzu varsayabiliriz ve tek bir arsa üzerinde birkaç satır ve basit bir açıklama içeren çok temel bir çizgi grafiği isteriz.
Yanıtlar:
En kolay yol R'yi kullanmaktır
read.csvVerileri R'ye girmek için kullanın , ardından plotve linekomutlarının bir kombinasyonunu kullanın
Gerçekten özel bir şey istiyorsanız, o zaman ggplot2 veya kafes kütüphanelerine bakın .
In ggplot2aşağıdaki komutları başlamanıza gerekir.
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)
Bu size aşağıdaki grafiği verecektir:
Çizgi grafiği http://img84.imageshack.us/img84/6393/tmpq.jpg
R'deki parselleri kaydetme
Grafikleri R'de kaydetmek basittir:
#Look at ?jpeg to other different saving options
jpeg("figure.jpg")
print(p)#for ggplot2 graphics
dev.off()
Yerine, jpegbir pdfveya postscript dosyası olarak da kaydedebilirsiniz :
#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)
Grafikler için R'yi geçmek zor. İstediğinizi 3 satırda yapabilirsiniz. Örneğin, csv dosyasının dört sütunu olduğunu varsayarsak:
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 kesinlikle cevaptır. Sadece Rob ve Colin'in zaten söylediklerine ekleyeceğim:
Senin araziler kalitesini artırmak için, kullanmayı düşünmelisiniz Kahire paketi çıktı aygıtı için. Bu , son grafiklerin kalitesini büyük ölçüde artıracaktır . Fonksiyonu çizmeden önce çağırmanız yeterlidir ve çıkış cihazı olarak Kahire'ye yönlendirir.
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
Son olarak, bunu bir yayına koymak açısından, Sweave oynamaktadır. Parselleri kağıdınızla birleştirmek önemsiz bir işlemdir (ve sizi tekrarlanabilir ve anlaşılabilir bir şeyle bırakmanın ek avantajına sahiptir ). cacheSweaveUzun süredir çalışan hesaplamalarınız varsa kullanın .
En sevdiğim araç mathplotlib ile Python
Avantajlar:
Özellikle, svg ve eps gibi farklı dosya formatları için savefig dosyasının format parametresini kullanın
Bir örnek: input.csv
"Satır 1", 0,5,0,8,1,0,0,9,0,9 "Satır 2", 0.2,0.7,1.2,1.1,1.1
Kod:
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')
Üç popüler görselleştirme kütüphanesi için örnek galerilere göz atın:
İlk ikisi için, ilişkili kaynak kodunu bile görüntüleyebilirsiniz - basit şeyler basittir, çok fazla kod satırı değildir. Prefuse durumunda gerekli Java kaynak plakası kodu olacaktır. Her üçü de bir takım arka uçları / cihazları / oluşturucuları (pdf, ps, png, vb.) Destekler. Üçü de açıkça yüksek kaliteli grafikler yeteneğine sahiptir.
Sanırım hangi dilde en rahat çalıştığınıza bağlı kalıyor.
Another option is Gnuplot
Easy is relative. No tool is easy until you know how to use it. Some tools may appear more difficult at first, but provide you with much more fine-grained control once you master them.
I have recently started to make my plots in pgfplots. Being a LaTeX package (on top of tikz), it is particularly good at making things look good. Fonts will be consistent with the rest of the document and it's much easier to integrate your plots visually. It's not the easiest option to make plots, but it's a rather easy way to make plots that are certainly publication-quality.