Tôi làm gì sai ở đây? Tôi đang cố gắng tô bóng hình chữ nhật hàng ngày thay thế 24 giờ với màu xám trong suốt. Nhưng chỉ có hình chữ nhật cuối cùng từ for-loop được rút ra (?!?) Nếu tôi làm những việc thủ công thay vì bởi vòng lặp nó hoạt động tốt.ggplot2: cách minh bạch che giấu các ngày thay thế trên một ô
Có cách nào để vector hóa điều này để tránh vòng lặp không? (Và nó có thể được thực hiện với qplot?) Tôi mới đến ggplot2 và có tôi đọc qua trang web, sách và ví dụ của Hadley.
Vấn đề thứ hai: cài đặt alpha về thẩm mỹ không ngăn hình chữ nhật che khuất nền. Làm thế nào để có được sự minh bạch?
dat <- data.frame(my_x_series=1:192, my_y_series=5.0*runif(192))
# (ymin, ymax are computed for this series using min/max(na.rm==TRUE))
ymax <- 5.0
ymin <- 0.0
p <- ggplot(dat, aes(x=my_x_series,alpha=0.9))
alternate_daily_bars_xmin <- c(4,52,100,148)
for (shade_xmin in alternate_daily_bars_xmin) {
shade_xmax <- min(shade_xmin+24, 192) # clamp at end of x-range
p <- p + geom_rect(aes(alpha=0.5,xmin=shade_xmin,xmax=shade_xmax,ymin=ymin,ymax=ymax), fill='gray80')
}
p <- p + geom_point(aes(y=my_y_series))
p
thêm nét ngẫu nhiên * dat * cho lặp lại. Đó là cú pháp lệnh đang đánh tôi. Tôi đoán mỗi geom_rect ghi đè cuối cùng thay vì tổng hợp như bạn có thể mong đợi. – smci