ฉันต้องการใช้ hexbin ของ bioconductor (ซึ่งฉันสามารถทำได้) เพื่อสร้างพล็อตที่เติมพื้นที่แสดงผลทั้งหมด (png) - ไม่มีแกน, ไม่มีป้าย, ไม่มีพื้นหลัง, ไม่มีนูติน '
theme_void()
ฉันต้องการใช้ hexbin ของ bioconductor (ซึ่งฉันสามารถทำได้) เพื่อสร้างพล็อตที่เติมพื้นที่แสดงผลทั้งหมด (png) - ไม่มีแกน, ไม่มีป้าย, ไม่มีพื้นหลัง, ไม่มีนูติน '
theme_void()
คำตอบ:
ตามความคิดเห็นของฉันในคำตอบของ Chase คุณสามารถลบสิ่งนี้ได้หลายอย่างโดยใช้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())
ดูเหมือนว่ายังมีขอบเล็ก ๆ รอบ ๆ ขอบของ. png ที่เกิดขึ้นเมื่อฉันบันทึกสิ่งนี้ บางทีคนอื่นรู้วิธีลบแม้กระทั่งองค์ประกอบนั้น
(บันทึกย้อนหลัง: ตั้งแต่ggplot2เวอร์ชัน 0.9.2 opts
เลิกใช้แล้วให้ใช้theme()
และแทนที่theme_blank()
ด้วยelement_blank()
)
theme(axis.ticks=element_blank())
ใช้งานไม่ได้และtheme(axis.ticks.x=element_blank())
อาจเป็นข้อบกพร่องชั่วคราวที่ใดที่หนึ่ง (ฉันมีชุดรูปแบบของตัวเองแล้วฉันพยายามแทนที่: เฉพาะaxis.ticks.x
และaxis.ticks.y
ทำงาน)
Re: การเปลี่ยน opts เป็น theme ฯลฯ (สำหรับคนที่ขี้เกียจ):
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())
คำตอบปัจจุบันไม่สมบูรณ์หรือไม่มีประสิทธิภาพ นี่คือ (อาจ) วิธีที่สั้นที่สุดในการบรรลุผลลัพธ์ (โดยใช้theme_void()
:
data(diamonds) # Data example
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) +
theme_void() + theme(legend.position="none")
ผลลัพธ์ที่ได้คือ:
หากคุณสนใจเพียงแค่กำจัดฉลากให้labs(x="", y="")
ทำตามเคล็ดลับ:
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) +
labs(x="", y="")
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + theme_void() + theme(legend.position="none", panel.background = element_rect(fill="grey80"), plot.background = element_rect(fill="red"))
แนะนำว่าไม่ใช่โมฆะ 100%
labs(x="",y="")
พื้นที่ว่างของชื่อแกนเพราะจริงๆแล้วมีชื่ออยู่พวกมันแค่ไม่มีสัญญาณ หากต้องการลบชื่อแกนและพื้นที่สำหรับพวกมันจะดีกว่าที่จะใช้+ theme(axis.title = element_blank())
labs(x = NULL)
หรือxlab(NULL)
เป็นวิธีอื่น
'opts' is deprecated.
ในการggplot2 >= 0.9.2
ใช้งาน
p + theme(legend.position = "none")
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)
Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "NULL"
สิ่งนี้ทำในสิ่งที่คุณต้องการหรือไม่?
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")