2016-04-07 14 views
2

Farklı renklerde bir zaman dizisi çizmek istiyorum, ör. İlk yarı siyah ve serinin ikinci yarısı kırmızıdır. enter image description hereR: Farklı renklerde bir zaman dizisi çizimi

nasıl da ikinci yarı için bir kırmızı çizgi alabilirsiniz: Ben Ancak, yalnızca sembolleri değil, hat değiştiren

plot(1:10,col = c(rep("black",5),rep("red",5)),type="o") 

ile bunu?

+0

buraya göndermeden önce bazı internet arama yapın, bağlantının sizin için http://stackoverflow.com/questions/14860078/plot-multiple-lines-data-series-each-with- işleri benzersiz renk-in-r –

+0

ve bağlantıda nerede soru yanıtladı? N serileri n renklerinde çizebilirim ama n renklerinde bir seri çizemiyorum. –

+1

Tek bir seri birden fazla renkte çizilemez, farklı renkteki parçalara bölünmesi gerekir. Aynı şey aşağıdaki cevapta da yapılmıştır. Bağlantı daha sonra farklı renklerle farklı çizgilerin nasıl çizileceğini yanıtlar. –

cevap

2

Sadece böyle manuel olarak farklı çizgi parçaları eklemek olabilir: daha karmaşık veri kümeleri için geldiğinde

plot(1:10, 1:10, col = c(rep("black" ,5), rep("red" ,5))) 

lines(1:5, 1:5, col = "black") 
lines(6:10, 6:10, col = "red") 

plot

Ancak, bu yaklaşım hayli katıdır. Bu nedenle, genellikle bu görevleri gerçekleştirmek için xyplot (kafes dan) group bağımsız değişkenini kullanma eğiliminde olurum. Bu, probleminiz için daha esnek bir çözüm olacaktır.

dat <- data.frame(x = 1:10, y = rep(c("a", "b"), each = 5)) 

library(lattice) 
xyplot(x ~ 1:length(x), data = dat, group = y, type = "b", 
     col = c("black", "red")) 

xyplot

+0

Teşekkürler. Bu aslında benim kendi çözümümdü. Daha zarif bir şey olduğunu ummuştum. –

+0

Haha, @HOSS_JFL'yi tahmin edebilirdim. ** Lattice ** 'deki grupları kullanarak yukarıdaki güncellemeye göz atın. Belki de senin için bir yararı vardır. – fdetsch

İlgili konular