2011-06-29 45 views
88

Tôi muốn sử dụng hexbin của bioconductor (mà tôi có thể làm) để tạo ra một âm mưu lấp đầy toàn bộ vùng hiển thị (png) - không có trục, không có nhãn, không nền, không có nuthin '.ggplot2 cốt truyện không có trục, truyền thuyết, vv

+1

Nó sẽ không dễ dàng hơn để tạo ra một âm mưu hexbin và cắt nó trong một trình biên tập hình ảnh? – joran

Trả lời

1

Điều này có làm những gì bạn muốn không?

p <- ggplot(myData, aes(foo, bar)) + geom_whateverGeomYouWant(more = options) + 
p + scale_x_continuous(expand=c(0,0)) + 
scale_y_continuous(expand=c(0,0)) + 
opts(legend.position = "none") 
+0

loại bỏ chú giải nhưng trục x và y và lưới nền vẫn ở đó. – user1320487

+0

@cassiodorus - xin lỗi, đã bỏ lỡ lần đầu tiên. Hãy cho tôi một chút ... – Chase

+0

Bạn có thể xóa hầu hết nội dung này bằng 'theme_blank' ... – joran

138

Theo nhận xét của tôi trong câu trả lời của Chase, bạn có thể loại bỏ rất nhiều công cụ này sử dụng element_blank:

dat <- data.frame(x=runif(10),y=runif(10)) 

p <- ggplot(dat, aes(x=x, y=y)) + 
     geom_point() + 
     scale_x_continuous(expand=c(0,0)) + 
     scale_y_continuous(expand=c(0,0)) 

p + theme(axis.line=element_blank(),axis.text.x=element_blank(), 
      axis.text.y=element_blank(),axis.ticks=element_blank(), 
      axis.title.x=element_blank(), 
      axis.title.y=element_blank(),legend.position="none", 
      panel.background=element_blank(),panel.border=element_blank(),panel.grid.major=element_blank(), 
      panel.grid.minor=element_blank(),plot.background=element_blank()) 

Dường như vẫn có một biên độ nhỏ xung quanh các cạnh của .png kết quả khi Tôi đã cứu cái này. Có lẽ ai đó khác biết cách loại bỏ ngay cả thành phần đó.

(Lịch sử lưu ý:.. Kể từ ggplot2 phiên bản 0.9.2, opts đã bị phản Thay vì sử dụng theme() và thay thế theme_blank() với element_blank())

+1

Rất cám ơn! Tôi cũng tìm thấy giải pháp tương tự tại http://groups.google.com/group/ggplot2/browse_thread/thread/72403c6997b79c3b – user1320487

1
xy <- data.frame(x=1:10, y=10:1) 
plot <- ggplot(data = xy)+geom_point(aes(x = x, y = y)) 
plot 
panel = grid.get("panel-3-3") 

grid.newpage() 
pushViewport(viewport(w=1, h=1, name="layout")) 
pushViewport(viewport(w=1, h=1, name="panel-3-3")) 
upViewport(1) 
upViewport(1) 
grid.draw(panel) 
+0

'Lỗi khi sử dụngMethod (" grid.draw "): không áp dụng phương pháp áp dụng cho 'grid.draw' đối tượng của lớp "NULL" ' –

+0

grid.ls() hiển thị danh sách các đối tượng khung nhìn và grob – amaurel

+0

có vẻ như trong phiên bản khác của ggplot rằng tôi đang sử dụng tên bảng điều khiển khác nhau – amaurel

35
'opts' is deprecated. 

trong ggplot2 >= 0.9.2 sử dụng

p + theme(legend.position = "none") 
+5

Tôi nhận thấy bạn chưa có đặc quyền chỉnh sửa, nhưng nếu bạn phát hiện các câu trả lời ggplot2 khác của tôi cần được cập nhật lại: opts() vui lòng đề xuất chỉnh sửa. Tôi sẽ nhận được thông báo và có thể tự mình kết hợp. – joran

79

Re: thay đổi opts thành chủ đề vv (đối với người lười biếng):

theme(axis.line=element_blank(), 
     axis.text.x=element_blank(), 
     axis.text.y=element_blank(), 
     axis.ticks=element_blank(), 
     axis.title.x=element_blank(), 
     axis.title.y=element_blank(), 
     legend.position="none", 
     panel.background=element_blank(), 
     panel.border=element_blank(), 
     panel.grid.major=element_blank(), 
     panel.grid.minor=element_blank(), 
     plot.background=element_blank()) 
22

Câu trả lời hiện tại không đầy đủ hoặc không hiệu quả. Dưới đây là (có lẽ) con đường ngắn nhất để đạt được kết quả (sử dụng theme_void():

data(diamonds) # Data example 
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + 
     theme_void() + theme(legend.position="none") 

Kết quả là:

enter image description here


Nếu bạn quan tâm đến chỉ loại bỏ sự nhãn , labs(x="", y="") thực hiện thủ thuật:

ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + 
     labs(x="", y="") 
+0

'ggplot (dữ liệu = kim cương, ánh xạ = aes (x = độ rõ ràng)) + geom_bar (aes (fill = cut)) + theme_void() + chủ đề (legend.position =" none ", panel.background = element_rect (fill = "grey80"), plot.background = element_rect (fill = "red")) 'cho thấy nó không phải là 100% void – baptiste

+0

Các labs (x =" ", y =" ") không xuất hiện để loại bỏ các trục , chỉ là các nhãn. – miratrix

+0

@miratrix xin lỗi, sai lầm của tôi. Đã cập nhật. – luchonacho

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