के साथ y मान के आधार पर लाइन रंग बदलें ggplot2 में लाइन रंगों के बारे में मेरा कोई प्रश्न है। मुझे सौर विकिरण डेटा प्लॉट करने की आवश्यकता है लेकिन मेरे पास केवल 6 घंटे का डेटा है, इसलिए geom_line
"अच्छा" आउटपुट नहीं देता है। मैंने geom_smooth
की कोशिश की है और नतीजा मुझे चाहिए जो मुझे चाहिए। लेकिन मेरे पास एक नया सवाल है, क्या y मान के आधार पर लाइन रंग बदलना संभव है?ggplot2
साजिश के लिए इस्तेमाल किया कोड
library(ggplot2)
library(lubridate)
# Lectura de datos
datos.uvi=read.csv("serie-temporal-1.dat",sep=",",header=T,na.strings="-99.9")
datos.uvi=within(datos.uvi, fecha <- ymd_h(datos.uvi$fecha.hora))
# geom_smooth
ggplot(data=datos.uvi, aes(x=fecha, y=Rad_Global_.mW.m2., colour="GLOBAL")) +
geom_smooth(se=FALSE, span=0.3)
वांछित आउटपुट में, लाइन विकिरण मूल्यों के लिए लाल 250 के तहत 250-500 अंतराल में हरे और नीले रंग मूल्यों के लिए उच्च 500 से होना चाहिए, है
क्या यह geom_smooth
के साथ संभव है? मैंने कोड here का पुन: उपयोग करने का प्रयास किया है, लेकिन बिंदु नहीं मिला।
डाटा साजिश के लिए इस्तेमाल किया:
dput(datos.uvi)
structure(list(fecha.hora = c(2016012706L, 2016012712L, 2016012718L,
2016012800L, 2016012806L, 2016012812L, 2016012818L, 2016012900L,
2016012906L, 2016012912L, 2016012908L, 2016013000L), latitud = c(37.75,
37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 37.75,
37.75, 37.75), longitud = c(-1.25, -1.25, -1.25, -1.25, -1.25,
-1.25, -1.25, -1.25, -1.25, -1.25, -1.25, -1.25), altitud = c(300L,
300L, 300L, 300L, 300L, 300L, 300L, 300L, 300L, 300L, 300L, 300L
), cobertura_nubosa = c(0.91, 0.02, 0.62, 1, 0.53, 0.49, 0.01,
0, 0, 0.13, 0.62, 0.84), longitud_de_onda_inicial.nm. = c(284.55,
284.55, 284.55, 284.55, 284.55, 284.55, 284.55, 284.55, 284.55,
284.55, 284.55, 284.55), Rad_Global_.mW.m2. = c(5e-04, 259.2588,
5, 100.5, 1, 886.5742, 110, 40, 20, 331.3857, 0, 0), Rad_Directa_.mW.m2. = c(0,
16.58034, 0, 0, 0, 202.5683, 0, 0, 0, 89.81712, 0, 0), Rad_Difusa_.mW.m2. = c(0,
242.6785, 0, 0, 0, 684.0059, 0, 0, 0, 241.5686, 0, 0), Angulo_zenital_.º. = c(180,
56.681, 180, 180, 180, 56.431, 180, 180, 180, 56.176, 180, 180
), blank = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
fecha = structure(c(1453874400, 1453896000, 1453917600, 1453939200,
1453960800, 1453982400, 1454004000, 1454025600, 1454047200,
1454068800, 1454054400, 1454112000), tzone = "UTC", class = c("POSIXct",
"POSIXt"))), row.names = c(NA, -12L), .Names = c("fecha.hora",
"latitud", "longitud", "altitud", "cobertura_nubosa", "longitud_de_onda_inicial.nm.",
"Rad_Global_.mW.m2.", "Rad_Directa_.mW.m2.", "Rad_Difusa_.mW.m2.",
"Angulo_zenital_.º.", "blank", "fecha"), class = "data.frame")
अग्रिम धन्यवाद।
मैं वास्तव में कुशल नहीं हूं, लेकिन हो सकता है कि आप उन क्षेत्रों का सबसेट बना सकें जिन्हें आप (पुनः) रंग चाहते हैं और फिर geom_line (डेटा = सबसेट ....) जोड़ें या अपने वर्तमान डेटासेट में एक अतिरिक्त कॉलम बनाएं उस क्षेत्र के कुछ रंग को असाइन करें जिसे आप अलग-अलग – MLavoie
रंगना चाहते हैं, आप [geom_smooth की सशर्त रंग] जांच सकते हैं (http://stackoverflow.com/questions/32908222/conditional-colouring-of-a-geom-smooth/ 32911114 # 32911114)। आपको अपने ब्रेक के अनुसार रंग की स्थिति ('color = y> 0') समायोजित करने की आवश्यकता होगी, और वाई = 0 की देखभाल करें ... – Henrik