2014-10-23 15 views
5

Şu an burada bulunan bir masaum var: http://ulozto.cz/xAeP3Ahn/res2-txt. Bundan bir nokta çizmeye çalışıyorum.ggplot ve temel çizim işlevlerini kullanarak farklı sonuçlar alma

res2<-read.table("res2.txt", header = TRUE, sep="\t") 

ve 2 araziler oluşturun:

benim tablo okuyun.

(1) Bu tek arsa fonksiyonu için script:

plot(res2$V2, res2$dist06, type = "n") 
points(subset(res2$V2, year == 2006), subset(res2$dist06, year == 2006), pch = 19, col = "red", cex = 1) 
points(subset(res2$V2, year == 2007), subset(res2$dist06, year == 2007), pch = 19, col = "green", cex = 1) 
points(subset(res2$V2, year == 2008), subset(res2$dist06, year == 2008), pch = 19, col = "black", cex = 1) 
points(subset(res2$V2, year == 2009), subset(res2$dist06, year == 2009), pch = 19, col = "blue", cex = 1) 
points(subset(res2$V2, year == 2011), subset(res2$dist06, year == 2011), pch = 19, col = "yellow", cex = 1) 
legend("topright", c("2006", "2007", "2008", "2009", "2011"), 
    col= c("red", "green", "black", "blue", "yellow"), 
    pch = c(19,19,19,19,19)) 

(2) ve ggplot2 için:

results from simple plot function (1) and froom ggplot2 (2)

: Burada
res2$year<-as.factor(res2$year) # consider year variable as discrete 
ggplot(data=res2, aes(x=V2, y=dist06, color=year)) + geom_point(shape=16, pch=50) + 
    xlab("threshold") + ylab("Euclidean distance") + 
    scale_fill_hue(name="year") + # set legend title 
    scale_colour_manual(values=c("red", "green", "black", "blue", "yellow")) + 
    theme_bw() 

benim sonuçlarıdır

Soruma göre neden farklı bir puanınız var positio n çiziklerinde farklı oluşturulan? sadece farklı renklerde ve efsanelerde sorun mu? "alt kümeler" yanlış tanımlanmış? Neden 2006 ikiside kırmızı olarak işaretlenmiş, ancak grafikte farklı bir pozisyona sahip? 2011 ve diğerleri ile aynı? Nerede yanlışım? Her tavsiye için teşekkürler, üçüncü gün burada kayboldum.

İşte plot from same data in excel

+0

Sorunuzdaki kodun (1) oluşturulduğunu düşünmüyorum. Deneyin: alt kümesi (res2 $ V2, yıl == 2006) '; '(0) sayısal'. – Henrik

+0

Sorunuza bir cevap vermemekle birlikte, her yıl bir tane 'nokta' çağrısından kaçınmak için, "yıl" sütununa "col" vektörünüzü yerleştirerek bir renk vektörü oluşturabilirsiniz: 'arsa (dist06 ~ V2, veri = res2, type = "n") '; Puanlar (dist06 ~ V2, veri = res2, col = col [faktörü (res2 $ yıl)]) – Henrik

cevap

4

Bu subset yanlış kullanımının bir yan etkisidir varsayalım (2) doğru olmalı benim excel den bilincinde olarak, bu nedenle ggplot2 gelen komplodur. buna ilk argüman şöyle bütün veri çerçevesi olmalıdır:

subset(res2, year == 2006)$V2 

veya

subset(res2, year == 2006, select = V2) 

(Yan not: Bu komutların tarafından döndürülen nesnelerin farklı, ama hem arsa için çalışacak)

bir köşeli parantez açıklaması kullanarak öneriyoruz:

res2$V2[res2$year == 2006] 

iki durumda da, elde edersiniz ac orrect arsa:

Fark etmiş olabileceğiniz gibi

enter image description here

, sen/kopyalama ggplot yaklaşımla çok yapıştırmak gerekmez. Güzel!

+0

Teşekkür @tonytonov, Bunu asla düşünmezdim! Sizin önerdiğiniz gibi "altkümeyi" değiştirdim ve işe yarıyor, tekrar teşekkürler! :) – maycca

+0

Bir şey değil! – tonytonov

İlgili konular