2009-10-02 40 views
8

Với biểu đồ ggplot2 sau:Đếm bởi yếu tố trong bảng xếp hạng ggplot2

ggplot(my_data, aes(colour=my_factor) + 
       geom_point(aes(x=prior, y=current)) + 
       facet_grid(gender ~ age) 

Tôi muốn làm cho kích thước của các điểm có tỷ lệ cho tội danh my_factor cho rằng sự kết hợp trước/hiện hành.

ggplot(my_data, aes(colour=my_factor, 
       size=<something-here>(my_factor)) + 
       geom_point(aes(x=prior, y=current)) + 
       facet_grid(gender ~ age) 

Bất kỳ ý tưởng nào?

== Chỉnh sửa ==

Đây là ví dụ rất nhỏ dựa trên tập dữ liệu mpg. Hãy định nghĩa "great_hwy" như hwy> 35, và "great_cty" như cty> 25:

mpg$great_hwy[mpg$hwy > 35] <-1 
mpg$great_hwy[mpg$hwy <= 35] <-0 
mpg$great_hwy <- factor(mpg$great_hwy) 

mpg$great_cty[mpg$cty > 25] <- 1 
mpg$great_cty[mpg$cty <= 25] <- 0 
mpg$great_cty <- factor(mpg$great_cty) 

Nếu chúng ta vẽ great_hwy vs great_cty, nó sẽ không cho chúng tôi biết nhiều:

ggplot(mpg) + geom_point(aes(x=great_cty, y=great_hwy)) 

thế nào Tôi có thể làm cho các điểm dữ liệu có kích thước lớn hơn tùy thuộc vào số điểm x/y không? Hy vọng điều này xóa nó lên, nhưng hãy cho tôi biết nếu không.

+1

Một mẫu dữ liệu nhỏ sẽ rất hữu ích ở đây ... bạn có thể chọn một từ bộ dữ liệu nếu bạn muốn. – Shane

+1

Tôi không hiểu ý bạn là gì "số lượng my_factor cho kết hợp trước/hiện tại đó". Có nhiều điểm dữ liệu cho mỗi x/y không? Vì vậy, bạn đang tìm kiếm một giải pháp cho vấn đề overplotting? Hay bạn ám chỉ điều gì khác? – Harlan

+0

@Shane, tôi đang làm việc trên một ví dụ tốt hơn theo đề xuất của bạn. @ Harlan, có nhiều điểm dữ liệu cho mỗi x/y. Tôi muốn vẽ một điểm dữ liệu cho mỗi x/y, và tôi muốn kích thước của điểm dữ liệu được cho là tỷ lệ thuận với các cặp số x/y. – hgmnz

Trả lời

20

Bạn chắc chắn có thể làm điều này bằng cách đếm bên ngoài để ggplot, nhưng một trong những điều tuyệt vời về ggplot là bạn có thể thực hiện nhiều thống kê trong nội bộ!

Sử dụng ví dụ mpg của bạn ở trên:

ggplot(mpg) + 
    geom_point(aes(x=great_cty, y=great_hwy, 
       size=..count..), stat="bin") 

alt text

+0

Đó là một giải pháp tuyệt vời. Cảm ơn! – Shane

+0

Chính xác những gì tôi đang tìm kiếm. Dường như * hầu hết * ô tô không lớn về thành phố và đường cao tốc;) – hgmnz

+0

Bạn cũng có thể muốn xem trang này, chỉ để đảm bảo rằng kích thước của điểm là những gì bạn nghĩ là (bán kính? Diện tích?): http://had.co.nz/ggplot2/scale_size.html Tôi nghĩ rằng có các khu vực tỷ lệ theo truyền thống được ưu tiên so với bán kính tỷ lệ thuận. –

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