2013-01-13 9 views
7

कृपया, इस बिंदु के साथ मेरी मदद करें। मुझे सकारात्मक बिंदुओं को छोटे बिंदुओं के रूप में प्रतिनिधित्व करने और बड़े बिंदुओं के रूप में नकारात्मक होने की आवश्यकता है। अगर मैं टेप शून्य आकार से पहले, बिंदु आकार सही हैं, लेकिन कथा बदल रहा है:ggplot में बिंदु आकार को कैसे रिवर्स करें?

df=data.frame(x=rnorm(20),y=runif(20),z=rnorm(20)) 
ggplot(df,aes(x=x,y=y))+geom_point(aes(size=-z)) 

इसलिए कि सुइट नहीं है।

+0

कोशिश 'last_plot() + scale_size (रेंज = c (5,1)) + गाइड (आकार = guide_legend (रिवर्स = TRUE)) ' – baptiste

उत्तर

10

एक समाधान scale_size() का उपयोग करना होगा और अपने breaks और फिर labels को विपरीत दिशा में सेट करना होगा। बेहतर प्रतिनिधित्व प्राप्त करने के लिए z मानों की परिवर्तित सीमा।

df=data.frame(x=rnorm(20),y=runif(20),z=(-13:6)) 
ggplot(df,aes(x=x,y=y))+geom_point(aes(size=-z))+ 
    scale_size("New legend",breaks=c(-10,-5,0,5,10),labels=c(10,5,0,-5,-10)) 

enter image description here

+0

बहुत धन्यवाद! यह वही है जो मैं चाहता हूं। –