अद्यतन:
GGAlly फिर से अद्यतन किया गया था और इस जवाब में हैक भी अब और काम नहीं करता है, लेकिन अंत में वहाँ एक गैर है -hack समाधान: दी
scales <- scale_colour_brewer(type = 'qual') %+% scale_fill_brewer(type = 'qual')
आप कर सकते हैं (एक उम्मीद है कि भविष्य प्रूफ तरीके से)
for (row in seq_len(ps$nrow))
for (col in seq_len(ps$ncol))
ps[row, col] <- ps[row, col] + scales
पुराना तरीका
अन्य जवाब में हैक अब और काम नहीं करता है, तो चलो एक नया हैक करते हैं!, साजिश वस्तु में संबंधित तार संशोधित करना पड़
> dta <- data.frame(a=1:6, b=7:12, c=c('f', 'g'))
> ps <- ggpairs(dta, 1:2, colour = 'c')
> str(ps)
List of 10
$ data :'data.frame': 2 obs. of 3 variables:
..$ a: int [1:2] 1 2
..$ b: int [1:2] 3 4
..$ c: int [1:2] 5 6
$ columns : int [1:3] 1 2 3
$ plots :List of 9
..$ : chr "ggally_densityDiag(ggally_data, ggplot2::aes(x = a, colour = c))"
..$ : chr "ggally_cor(ggally_data, ggplot2::aes(x = b, y = a, colour = c))"
[...]
$ gg : NULL
- attr(*, "class")= chr [1:2] "gg" "ggpairs"
> ps
आदेश साजिश को संशोधित करने के लिए:
एक ggpairs
वस्तु की आंतरिक संरचना डाटासेट और स्ट्रिंग की एक सूची है अतिरिक्त आदेश शामिल करने के लिए। इसके लिए हमें deparse(substitute(argument))
का उपयोग एक स्ट्रिंग कोड उपयोगकर्ता पारित कर दिया युक्त पाने के लिए, और हर साजिश कॉल से संलग्न:
add_to_plots <- function(pairs, modification) {
str <- deparse(substitute(modification))
pairs$plots <- lapply(pairs$plots, function(s) paste(s, '+', str))
pairs
}
> add_to_plots(ps, scale_colour_brewer(type = 'qual'))
अच्छा हैक! उम्मीद है कि यह एक अच्छा समय के लिए भरोसेमंद रहता है। –