2016-06-16 9 views
5

मैं निम्नलिखित कोड है कि कुछ पुराने पूर्व 2.1 ggplot2 के संस्करण में पूरी तरह से काम किया है:bquote ggplot2 संस्करण में facet_grid लेबल में काम नहीं करता है 2.1

dd <- 
structure(list(Dataset = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = c("train", 
"validation"), class = "factor"), Iterations = c(4L, 2L, 3L, 
4L, 1L, 3L), L1 = c(1e-07, 1e-07, 1e-07, 1e-06, 1e-07, 1e-06), 
    L2 = c(1e-05, 1e-05, 1e-05, 1e-05, 1e-05, 1e-05), Accuracy = c(0.2079478, 
    0.2079829, 0.2081201, 0.2086698, 0.2091378, 0.2093453), Loss = c(0.4468469, 
    0.446877, 0.4472973, 0.4485992, 0.4496757, 0.4499354)), .Names = c("Dataset", 
"Iterations", "L1", "L2", "Accuracy", "Loss"), row.names = c(NA, 
6L), class = "data.frame") 

labelAxis <- function(i) { 
    function(values) { 
    sapply(values, function(x) { bquote(lambda[.(i)]==10^.(round(log10(x)))) }) 
    } 
} 

ggplot(dd, aes(x=Iterations, y=Loss, color=Dataset)) + 
    facet_grid(. ~ L1 + L2, scales="fixed", 
      labeller=labeller(L1=labelAxis(1), L2=labelAxis(2), keep.as.numeric=T)) + 
    geom_line() 

अब ggplot2 labeller()keep.as.numeric=... पैरामीटर deprecates, और बुरा, फिर भी, ऊपर दिए गए कोड के लिए अब लेबल के अच्छे गणित प्रतिपादन का उत्पादन नहीं होता है। क्या किसी को पता है कि इस मुद्दे को कैसे ठीक किया जाए?

उत्तर

7

ठीक है, मुझे लगता है कि मैंने इसे समझ लिया है। पहलू लेबल संपादित करने के लिए नया तरीका label_bquote() उपयोग करने के लिए, इस तरह है:

ggplot(dd, aes(x=Iterations, y=Loss, color=Dataset)) + 
    facet_grid(. ~ L1 + L2, scales="fixed", labeller=label_bquote(
    cols={lambda[1]==10^.(round(log10(L1)))}*", "*lambda[2]==10^.(round(log10(L2))))) + 
    geom_line() 

ध्यान दें कि घुंघराले ब्रेसिज़ के मालूम होता है यादृच्छिक जोड़ी। वह एक आर गॉचा है। उन ब्रेसिज़ के बिना आर पार्सर अभिव्यक्ति में दूसरे == ऑपरेटर पर चोक करता है।

+1

आपका प्रश्नोत्तर मेरे लिए बहुत उपयोगी है !! – cuttlefish44

संबंधित मुद्दे