2013-07-24 33 views
5

Nói rằng tôi có các dữ liệu sau:Thay đổi dòng lưới hành vi trong ggplot2

require(ggplot2) 
set.seed(123) 
data <- data.frame(x = sample(1:20, 100, replace = TRUE)) 

Tôi muốn tạo ra một dấu chấm lô data$x, vì vậy đây là những gì tôi làm:

ggplot(data, aes(x)) + 
    geom_dotplot(binwidth = 1) + 
    scale_x_continuous(breaks = seq(1, 20, 1)) + 
    scale_y_continuous(breaks = NULL) 

nào mang lại cho tôi này:

dotplot1

tôi muốn thoát khỏi thos e đường lưới dọc, vì vậy tôi thêm theme(line = element_blank()) vào câu lệnh ggplot của tôi. Vấn đề là lệnh cũng loại bỏ các dấu tick, mà tôi muốn giữ lại. Làm cách nào để ẩn các đường lưới trong khi vẫn giữ các dấu tích tương ứng?

Tôi cũng muốn biết cách tôi có thể thay đổi các đường lưới để chúng được vẽ mỗi 1:20, không phải ở mọi dấu 0,5.

Tôi đã tìm kiếm các câu trả lời đó trong ?title()?geom_dotplot, đã thử một vài điều, không có kết quả. Đánh giá cao sự trợ giúp!

Trả lời

11

Sử dụng panel.grid

theme(panel.grid = element_blank()) 

enter image description here

Nếu bạn muốn các đường lưới được rút ra mỗi 1:20, không phải ở mỗi 0,5 mark.

theme(panel.grid.minor = element_blank(), 
     panel.grid.major = element_line(colour = "white",size=0.75)) 

enter image description here

+0

+1 By bảy giây! :-) –

+0

Cảm ơn, tất cả các tùy chọn chủ đề đó khiến tôi nhớ điều này. ;) –

+0

Bất kỳ câu hỏi con nào của tôi, về việc thay đổi các dấu lưới thành '1: 20'? –

1

bạn có thể tìm thấy câu trả lời here

opts đã được thay đổi để theme. nhưng điều về grid.major.x, grid.minor.y nên đặt trên đường đua

Để thoát khỏi dòng lưới lớn, ví dụ

ggplot(data, aes(x)) + 
    geom_dotplot(binwidth = 1) + 
    scale_x_continuous(breaks = seq(1, 20, 1)) + 
    scale_y_continuous(breaks = NULL) + theme(panel.grid.major = element_blank()) 
Các vấn đề liên quan