2013-01-07 33 views
5

मान लीजिए कि मैं डिफ़ॉल्ट रूप से ठोस बिंदुओं (pch=16) के बजाय सर्कल (pch=1) का उपयोग करने के लिए geom_point पसंद करूंगा। आप shape को geom_point पर तर्क देकर मार्करों का आकार बदल सकते हैं, उदा।ggplot में डिफ़ॉल्ट सौंदर्यशास्त्र कैसे बदलें?

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point(shape=1) 
ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point(shape=16) 

लेकिन मैं यह नहीं समझ सकता कि डिफ़ॉल्ट व्यवहार को कैसे बदला जाए।

+2

@AR मैं वास्तव में है कि नहीं लगता है तो फिर आप को बदलने के लिए कैसे आप भूखंड की जरूरत नहीं है इस सवाल के लिए बिल्कुल प्रासंगिक है। – joran

उत्तर

12

Geom (और स्टेट) डिफ़ॉल्ट सीधे अद्यतन किया जा सकता:

update_geom_defaults("point", list(shape = 1)) 
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() 

enter image description here

7

ऐसा करने का एक तरीका (हालांकि मुझे यह वास्तव में पसंद नहीं है) अपना खुद का geom_point फ़ंक्शन बनाना है। जैसे

geom_point2 <- function(...) geom_point(shape = 1, ...) 

तो बस सामान्य रूप में उपयोग करें:

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point2() 

या यदि आप चाहते हैं आप समारोह geom_point() ओवरराइड कर सकते हैं:

geom_point <- function(...) { 
    ggplot2::geom_point(shape = 1, ...) 
} 

यह बुरा व्यवहार माना जा सकता है, लेकिन यह काम करता है।

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point()