Hãy sử dụng số liệu mpg
làm ví dụ, cụ thể là các cột class
và cyl
. Tôi có thể xem có bao nhiêu mục đang có, mỗi đơn class
, và phân biệt màu sắc lấp dựa trên giá trị cyl:Tổng hợp dữ liệu với ggplot
library(ggplot2)
p <- ggplot(mpg)
p <- p + geom_bar(mapping=aes(x=class, fill=factor(cyl)), position=position_dodge())
print(p)
Những gì tôi muốn xem, tuy nhiên, là mức trung bình số mục nhập (mỗi class
), mỗi giá trị khác nhau của cyl
. Về cơ bản, nếu bạn nhìn vào cốt truyện ở trên, tôi muốn một thanh duy nhất cho mỗi lớp, có chiều cao nên là chiều cao trung bình của các thanh màu cho lớp đó.
tôi có thể để có được kết quả này bởi tiền xử lý các khung dữ liệu, ví dụ:
df <- aggregate(formula=cyl~class, data=mpg, FUN=function(x) { length(x)/length(unique(x)) })
p <- ggplot(df)
p <- p + geom_bar(mapping=aes(x=class, y=cyl), stat='identity')
p <- p + ylab('average count')
Điều đó cho mong muốn đầu ra của tôi:
Tuy nhiên, do cách mạnh mẽ ggplot2 là , Tôi tự hỏi, nếu điều này là có thể thông qua các chức năng ggplot. Tôi đoán điều này liên quan đến việc sử dụng một stat
cụ thể (có thể với group=cyl
?), Nhưng tôi không thể.
tặng một cái nhìn 'stat_summary' [link] (http: //docs.ggplot2 .org/current/stat_summary.html) – user3631369
@ user3631369 Tôi đang chơi với nó ngay bây giờ, nhưng tôi không nhận được kết quả. Tôi không thể tổng hợp trên lĩnh vực hình trụ. – natario