2012-04-02 37 views
8

Tôi đang cố gắng tạo biểu đồ thanh xếp chồng rất đơn giản trong ggplot2, nhưng vì lý do nào đó nó không hoạt động và tôi nhận được thông báo lỗi: "Lỗi trong pmin (y, 0): đối tượng 'y' không tìm thấy ". Vấn đề ở đâu?ggplot2 biểu đồ thanh xếp chồng - đối tượng y không tìm thấy

factorvar <- c(1,1,1,2,2,2,3,3,3) 
factorvar <- factor(factorvar, labels=c("Type", "Size", "Outcome")) 
freq <- c(3,1,4,1,2,2,4,1,1) 
fillvar <- c(1,1,1,2,2,2,3,3,3) 
fillvar <- factor(fillvar) 

df.harvest <- data.frame(fillvar,freq,factorvar) 

harvest <- ggplot(df.harvest, aes(x=factorvar, y=freq, fill=fillvar)) + geom_bar() 
harvest 
+2

Điều gì xảy ra nếu bạn thêm 'stat =" identity "' vào cuộc gọi 'geom_bar' của bạn như sau:' geom_bar (stat = "identity") '? –

Trả lời

1

Tôi không chắc chắn những gì được thông báo lỗi có nghĩa, nhưng nếu bạn sử dụng fillvar = c(1,2,3,1,2,3,1,2,3), (ở vị trí của biến fillvar bạn), bạn sẽ nhận được một biểu đồ thanh xếp chồng lên nhau.

2

Tôi không thực sự chắc chắn nếu tôi hiểu những gì bạn muốn đếm và những gì bạn muốn để ngăn xếp, nhưng sử dụng một số dữ liệu của bạn và mã này

qplot(factor(freq), data=df.harvest, geom="bar", fill=factorvar) 

tôi có được điều này,

qplot(factor(freq), data=df.harvest, geom="bar", fill=factor(factorvar))

Đó có phải là những gì bạn đang tìm kiếm không?

3

này là khá cũ nhưng tôi không thấy bất kỳ câu trả lời tốt cho nó:

Bạn luôn nên xác định các đối số trong geom_bar nếu bạn đang cung cấp các trục y.

Bạn đã cung cấp tần số như trục y và không muốn geom_bar để tính toán nó cho bạn, vì vậy bạn phải ghi rõ geom_bar(stat = "identity")

Ngoài ra, đây fillvar của bạn là cơ bản giống như factorvar và không có điểm trong sử dụng một như trục và một là màu tô.

Tuy nhiên, nếu chúng khác nhau, bạn cũng phải chỉ định geom_bar(stat = "identity", position="dodge") hoặc (stat = "identity", position="stack").

Theo mặc định, stat đang chuyển sang "bin" trong trường hợp của bạn và đã xảy ra lỗi. Cũng theo mặc định, vị trí sử dụng stack.

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