2012-03-20 21 views
24

Tôi có mã giả sau đây:Làm thế nào để tăng kích thước của các điểm trong ggplot2, tương tự như cex trong lô cơ sở?

dt<-data.frame(country=letters[1:20],val=rnorm(20),siz=rnorm(20)) 
qplot(x=country,y=val,data=dt,geom="point",size=siz) 

Bây giờ tôi muốn tăng kích thước tương đối của các điểm, kể từ khi kết quả điểm nhỏ nhất là quá nhỏ. Điều này có thể thực hiện bằng cách thay đổi một tham số, chẳng hạn như cex trong các ô cơ sở không?

Trả lời

26

Bạn muốn scale_size() và đó là lý lẽ range (hoặc to theo trang web ggplot):

qplot(x=country,y=val,data=dt,geom="point", size=siz) + 
    scale_size(range = c(2, 10)) 

Fiddle với range để có được tối thiểu phù hợp/kích thước tối đa.

+0

Đối với phiên bản ggplot2 tôi đang sử dụng (0.8.9) đối số là' to', thay vì 'dải ô'. Và nó ở trong tầm nhìn đơn giản trong trang trợ giúp. Làm thế nào tôi đã bỏ lỡ nó, tôi không hiểu. – mpiktas

+1

Và bạn cũng đã đề cập đến 'to' trong bài đăng của mình. Đầu của tôi không hoạt động đúng ngày hôm nay. – mpiktas

+0

Vâng, tôi không chắc rằng máy trạm của tôi đã được cập nhật ** ggplot2 ** - khôn ngoan. –

16

Có. Thay đổi phạm vi của quy mô:

p <- qplot(x=country,y=val,data=dt,geom="point",size=siz) 
p + scale_size_continuous(range = c(3,8)) 

enter image description here

+0

cảm ơn câu trả lời của bạn. Tôi upvoted cả hai, nhưng tôi có thể chấp nhận chỉ có một. – mpiktas

+0

Tôi có thể hỏi cách xóa chú thích đó ở bên phải không? – Ida

+0

(+1): Câu trả lời hay. Sử dụng 'scale_size_continuous (range = range (dt $ siz))' sẽ thích hợp hơn. – MYaseen208

Các vấn đề liên quan