2012-07-25 4 views
54

मैं ggplot2 के लिए नया हूं और सौंदर्यशास्त्र की एक व्यापक सूची खोजने की कोशिश कर रहा हूं। मुझे लगता है कि मैं उनके उद्देश्य को समझता हूं लेकिन यह जानना मुश्किल है कि विभिन्न परिस्थितियों में उपयोग किया जा सकता है (ज्यादातर भूगर्भ?)। हैडली की वेबसाइट कभी-कभी व्यक्तिगत भूगोल के लिए पृष्ठों पर उपलब्ध सौंदर्यशास्त्र सूचीबद्ध करती है और आर डॉक्टर कभी-कभी (हालांकि शायद ही कभी) वही करती है। मुझे एक भूगर्भ भी मिला जिसके लिए दोनों काफी मेल नहीं खाते।क्या ggplot2 के लिए सौंदर्यशास्त्र का एक टेबल या कैटलॉग है?

मैंने यहां एक उत्तर के लिए टिप्पणियों की खोज की और यहां तक ​​कि पुस्तक खरीदी! हां, कोई मदद नहीं।

मुझे लगता है कि यह एक आयाम में सूचीबद्ध सभी सौंदर्यशास्त्र और सभी भूगर्भों (और अन्य वस्तुओं?) में एक टेबल सूचीबद्ध होना शानदार होगा।

क्या किसी को ऐसी चीज़ पता है?

क्या किसी ऑब्जेक्ट पर लागू किए जा सकने वाले सभी सौंदर्यशास्त्रों को सूचीबद्ध करने के लिए आर में एक सरल तरीका (कमांड) है?

यहाँ कैसे एक मेज शुरू हो सकता है है:

List   x  y  fill  size colour linetype . . . 
geom_point Yes  Yes  Yes  Yes  Yes  No 
geom_abline Yes  Yes  No  Yes  Yes  Yes 
. 
. 
. 

सौंदर्य परिभाषाओं की एक सूची/पैरामीटर के रूप में अच्छी तरह से एक बहुत ही उपयोगी संदर्भ होगा।

उत्तर

98

नीचे प्रत्येक geom के लिए default_aes,

  colour size linetype alpha fill weight shape width height angle hjust vjust family fontface lineheight 
abline  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
area   yes 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
bar   yes 0.5  1 yes grey20  1 -- --  -- -- -- --  --  --   -- 
bin2d   yes 0.5  1 yes grey60  1 -- --  -- -- -- --  --  --   -- 
boxplot  grey20 0.5 solid yes white  1 16 --  -- -- -- --  --  --   -- 
contour #3366FF 0.5  1 yes  --  1 -- --  -- -- -- --  --  --   -- 
crossbar  black 0.5  1 yes yes  -- -- --  -- -- -- --  --  --   -- 
density  black 0.5  1 yes yes  1 -- --  -- -- -- --  --  --   -- 
density2d #3366FF 0.5  1 yes  --  1 -- --  -- -- -- --  --  --   -- 
errorbar  black 0.5  1 yes  --  -- -- 0.5  -- -- -- --  --  --   -- 
errorbarh black 0.5  1 yes  --  -- -- -- 0.5 -- -- --  --  --   -- 
freqpoly  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
hex   yes 0.5  -- yes grey50  -- -- --  -- -- -- --  --  --   -- 
hline  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
linerange black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
path   black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
point  black 2  -- yes yes  -- 16 --  -- -- -- --  --  --   -- 
pointrange black 0.5  1 yes yes  -- 16 --  -- -- -- --  --  --   -- 
polygon   NA 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
quantile #3366FF 0.5  1 yes  --  1 -- --  -- -- -- --  --  --   -- 
raster   -- --  -- yes grey20  -- -- --  -- -- -- --  --  --   -- 
rect   yes 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
ribbon   yes 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
rug   black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
segment  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
smooth  #3366FF 0.5  1 0.4 grey60  1 -- --  -- -- -- --  --  --   -- 
step   black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
text   black 5  -- yes  --  -- -- --  --  0 0.5 0.5    1  1.2 
tile   yes 0.1  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
violin  grey20 0.5 solid yes white  1 -- --  -- -- -- --  --  --   -- 
vline  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 

और बदसूरत कोड मैं इस हैक करने के लिए इस्तेमाल किया है,

find_aes <- function(geom="point"){ 

    tryCatch({ 
    Geom <- getFromNamespace(paste("Geom", ggplot2:::firstUpper(geom), sep=""), 
          "ggplot2") 

    tmp <- unclass(Geom$default_aes) 
    tmp[is.na(tmp)] <- "yes" 
    data.frame(tmp, stringsAsFactors=FALSE) 
    }, error = function(e) {}) 
} 

funs <- grep("^geom_", ls("package:ggplot2"),val=T) 

geoms <- gsub("^geom_", "", funs) 

all <- lapply(geoms, find_aes) 
names(all) <- geoms 
relevant <- sapply(all, function(x) !is.null(x) && nrow(x) > 0) 
library(plyr) 
results = do.call("rbind.fill",all) 
rownames(results) <- names(relevant[relevant]) 
results[is.na(results)] <- "--" 

options(width=9999) 
capture.output(print(results), file="aes.txt") 
+2

+1 !, इसके अलावा, क्या यह सच होगा कि यदि भौगोलिक के ऊपर एक डिफ़ॉल्ट है तो यह उस एई का समर्थन करता है? मुझे ऐसा लगता है ... –

+0

छोटे बिंदु, सौंदर्यशास्त्र एक्स और वाई गायब हैं। – csgillespie

+0

यह मेरे लिए बिल्कुल स्पष्ट नहीं है कि उनमें से कौन सा असली सौंदर्यशास्त्र है जिसे स्केल के साथ मैप किया जा सकता है। – baptiste

5

, Aesthetic specifications के शब्दचित्र के लिए एक नज़र हैडली विकहैम द्वारा:

यह विगनेट ग्रिड ड्राइंग फ़ंक्शन लेने वाले विभिन्न प्रारूपों का सारांश देता है। इस जानकारी में से अधिकांश जानकारी आर दस्तावेज भर में बिखरी हुई है। यह परिशिष्ट इसे एक ही स्थान पर एक साथ लाता है।

+3

मृत लिंक @ cho7tom। एक काम कर रहा है? दिलचस्प लगता है। –

+1

मैंने इसे पाया, और लिंक अपडेट किया – philsf

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