2016-04-06 15 views
1

Üç sütunum var: enlem, boylam ve fiyat. x eksenli bir grafiği lat, y ekseni uzunluğunda çizmek istiyorum. Noktanın rengi fiyat değerine göre belirlenir. (0-50 $ - Kırmızı, 50-100 $ mavi vb). Ggplots kullanmayı denedim ama verilen aralığa göre noktayı renklendirebilecek hiçbir şey bulamadım.Grafik görüntü Grafiklerdeki metinlerin görüntülendiği yer: R aralıkları

latitude longitude price 
40.8520537789 -73.7886796346 100 
40.8411441603 -73.7830522867 100.4 
40.8500238142 -73.7893275949 102 
+1

Grupları almak için önce 'fiyat 'sütununa' cut() 'veya' findInterval() 'öğesini kullanın. – thelatemail

+0

Bunu yaptım. Şimdi fiyat sütununda 0,1, .. 9 (10 kutu) değerlerini veriyorum. Bunu nasıl çözebiliriz? – user2609410

cevap

1

Bunun için plot() işlevini kullanabilirsiniz. İşte

data.table (veya alternatif olarak, siz de data.frame kullanabilirsiniz) Aşağıdaki kodla her satır için renk öğrenebilirsiniz

> dt 
    latitude longitude price 
1: 40.85205 -73.78868 100.0 
2: 40.84114 -73.78305 100.4 
3: 40.85002 -73.78933 102.0 

.

color_val <- ifelse(dt[['price']] >= 0 & dt[['price']] <= 50,"red",ifelse(dt[['price']] > 50 & dt[['price']] <= 100,"blue","black")) 

veya yöntemle

@thelatemail tarafından belirtildiği gibi: Şimdi

cut(dt$price, c(0,50,100,Inf), labels=c("red","blue","black")) 

, bu komutla verileri çizebilirsiniz:

plot(x = dt[['latitude']],y = dt[['longitude']],col = color_val) 

Not: Bu üzerinde komplo sadece normaldir xy koordinatları.

+2

Tüm bu "ifelse" kodlaması "kesilebilir" (dt $ fiyat, c (0,50,100, Inf), etiketler = c ("kırmızı", "mavi", "siyah")) – thelatemail

+0

@ thelatemail Teşekkürler Bunu işaret ettiğin için! –

İlgili konular