Ggplot2 çizgi çizmek için efsane Ekle
Ggplot2 efsaneleri hakkında bir sorum var. Aynı grafikte üç çizgiler çizmek başardım ve üç renk kullanılan bir efsane eklemek istiyorum. Bu kod kullanılır
library(ggplot2)
require(RCurl)
link<-getURL("https://dl.dropbox.com/s/ds5zp9jonznpuwb/dat.txt")
datos<- read.csv(textConnection(link),header=TRUE,sep=";")
datos$fecha <- as.POSIXct(datos[,1], format="%d/%m/%Y")
temp = ggplot(data=datos,aes(x=fecha, y=TempMax,colour="1"))
geom_line(colour="red") opts(title="TITULO")
ylab("Temperatura (C)") xlab(" ")
scale_y_continuous(limits = c(-10,40))
geom_line(aes(x=fecha, y=TempMedia,colour="2"),colour="green")
geom_line(aes(x=fecha, y=TempMin,colour="2"),colour="blue")
scale_colour_manual(values=c("red","green","blue"))
temp
ve çıktı

Üç renk kullanılmış ve değişken adı ile bir efsane eklemek için (TempMax,TempMedia ve TempMin) istiyorum. Denedim
scale_colour_manual
ama kesin bir yol bulamadım.
Ne yazık ki orijinal veri bağlantılı siteden silinmiş ve kurtarılan olamazdı. Ama bu biçimi ile hava veri dosyaları geldiler
"date","Tmax","Tmin","Tmed","Precip.diaria","Wmax","Wmed"
2000-07-31 00:00:00,-1.7,-1.7,-1.7,-99.9,20.4,20.4
2000-08-01 00:00:00,22.9,19,21.11,-99.9,6.3,2.83
2000-08-03 00:00:00,24.8,12.3,19.23,-99.9,6.8,3.87
2000-08-04 00:00:00,20.3,9.4,14.4,-99.9,8.3,5.29
2000-08-08 00:00:00,25.7,14.4,19.5,-99.9,7.9,3.22
2000-08-09 00:00:00,29.8,16.2,22.14,-99.9,8.5,3.27
2000-08-10 00:00:00,30,17.8,23.5,-99.9,7.7,3.61
2000-08-11 00:00:00,27.5,17,22.68,-99.9,8.8,3.85
2000-08-12 00:00:00,24,13.3,17.32,-99.9,8.4,3.49
CEVAP
Beri @Etienne sordu nasıl bu olmadan erime verileri (genel tercih edilen yöntem, ama tanıdım olabilir bazı durumlarda bu mümkün değildir), şu aşağıdaki alternatif.
Orijinal veri kümesi ile başlar:
datos <-
structure(list(fecha = structure(c(1317452400, 1317538800, 1317625200,
1317711600, 1317798000, 1317884400, 1317970800, 1318057200, 1318143600,
1318230000, 1318316400, 1318402800, 1318489200, 1318575600, 1318662000,
1318748400, 1318834800, 1318921200, 1319007600, 1319094000), class = c("POSIXct",
"POSIXt"), tzone = ""), TempMax = c(26.58, 27.78, 27.9, 27.44,
30.9, 30.44, 27.57, 25.71, 25.98, 26.84, 33.58, 30.7, 31.3, 27.18,
26.58, 26.18, 25.19, 24.19, 27.65, 23.92), TempMedia = c(22.88,
22.87, 22.41, 21.63, 22.43, 22.29, 21.89, 20.52, 19.71, 20.73,
23.51, 23.13, 22.95, 21.95, 21.91, 20.72, 20.45, 19.42, 19.97,
19.61), TempMin = c(19.34, 19.14, 18.34, 17.49, 16.75, 16.75,
16.88, 16.82, 14.82, 16.01, 16.88, 17.55, 16.75, 17.22, 19.01,
16.95, 17.55, 15.21, 14.22, 16.42)), .Names = c("fecha", "TempMax",
"TempMedia", "TempMin"), row.names = c(NA, 20L), class = "data.frame")
İstenen etkiyi (ve bu da orijinal çizim kodu temizler) alabilirsiniz:
ggplot(data = datos, aes(x = fecha))
geom_line(aes(y = TempMax, colour = "TempMax"))
geom_line(aes(y = TempMedia, colour = "TempMedia"))
geom_line(aes(y = TempMin, colour = "TempMin"))
scale_colour_manual("",
breaks = c("TempMax", "TempMedia", "TempMin"),
values = c("red", "green", "blue"))
xlab(" ")
scale_y_continuous("Temperatura (C)", limits = c(-10,40))
labs(title="TITULO")
Fikir her satırın sabit bir dize için colour estetik eşleyerek bir renk verilir. Efsane görünmesini istediğiniz nedir, string seçme kolay olur. Bu durumda y değişken çizilen ismiyle aynı olması önemli değildir; dizeleri bir dizi olabilir. Bu aes çağrı içinde çok önemlidir; Bu bir eşleme oluşturma"". değişken
scale_colour_manual şimdi uygun renkler için bu dizeleri göster. Sonuç

Bazı durumlarda, seviyeler ve renkler arasında eşleştirme açık manuel ölçek değerleri (bu işaret için @DaveRGP sayesinde) belirtilerek yapılması gerekir:
ggplot(data = datos, aes(x = fecha))
geom_line(aes(y = TempMax, colour = "TempMax"))
geom_line(aes(y = TempMedia, colour = "TempMedia"))
geom_line(aes(y = TempMin, colour = "TempMin"))
scale_colour_manual("",
values = c("TempMedia"="green", "TempMax"="red",
"TempMin"="blue"))
xlab(" ")
scale_y_continuous("Temperatura (C)", limits = c(-10,40))
labs(title="TITULO")
(daha önce aynı şekil veren). Değerler adında, sonları gösterge sırasını ayarlamak için kullanılabilir ve herhangi bir sipariş değerleri kullanılabilir.
ggplot(data = datos, aes(x = fecha))
geom_line(aes(y = TempMax, colour = "TempMax"))
geom_line(aes(y = TempMedia, colour = "TempMedia"))
geom_line(aes(y = TempMin, colour = "TempMin"))
scale_colour_manual("",
breaks = c("TempMedia", "TempMax", "TempMin"),
values = c("TempMedia"="green", "TempMax"="red",
"TempMin"="blue"))
xlab(" ")
scale_y_continuous("Temperatura (C)", limits = c(-10,40))
labs(title="TITULO")


Nasıl android bir çizgi çizmek için...
Nasıl css ile noktalı bir çizgi çizmek...
Android TextView altında bir Çizgi çiz...
Nasıl sürüklenebilir ve droppable aras...
Parmağınızı aşağıdaki düz bir çizgi çi...