Tôi muốn thêm đường mật độ (mật độ thông thường thực tế) vào biểu đồ.Thêm đường mật độ vào biểu đồ có dữ liệu đếm trong ggplot2
Giả sử tôi có dữ liệu sau. Tôi có thể vẽ biểu đồ bằng ggplot2
:
set.seed(123)
df <- data.frame(x = rbeta(10000, shape1 = 2, shape2 = 4))
ggplot(df, aes(x = x)) + geom_histogram(colour = "black", fill = "white",
binwidth = 0.01)
tôi có thể thêm một dòng mật độ sử dụng:
ggplot(df, aes(x = x)) +
geom_histogram(aes(y = ..density..),colour = "black", fill = "white",
binwidth = 0.01) +
stat_function(fun = dnorm, args = list(mean = mean(df$x), sd = sd(df$x)))
Nhưng đây không phải là những gì tôi thực sự muốn, tôi muốn đường mật độ này được trang bị cho dữ liệu đếm.
Tôi đã tìm thấy một bài đăng tương tự (HERE) cung cấp giải pháp cho vấn đề này. Nhưng nó không hoạt động trong trường hợp của tôi. Tôi cần một yếu tố mở rộng tùy ý để có được những gì tôi muốn. Và đây không phải là khái quát hóa ở tất cả:
ef <- 100 # Expansion factor
ggplot(df, aes(x = x)) +
geom_histogram(colour = "black", fill = "white", binwidth = 0.01) +
stat_function(fun = function(x, mean, sd, n){
n * dnorm(x = x, mean = mean, sd = sd)},
args = list(mean = mean(df$x), sd = sd(df$x), n = ef))
Bất kỳ manh mối mà tôi có thể sử dụng để khái quát này
- đầu tiên để phân phối chuẩn,
- sau đó với bất kỳ kích thước thùng khác,
- và cuối cùng là bất kỳ phân phối nào khác sẽ rất hữu ích.
đã có nghĩa cho hai hình ảnh biểu đồ để có giống nhau không? Có vẻ như bạn đã tải lên cùng một cái hai lần – arvi1000
Sử dụng 'fitdistr (...)' trong gói 'MASS' để phù hợp với các bản phân phối. – jlhoward