如何控制 ggplot 中的 canvas 大小?
How can I control the canvas size in ggplot?
考虑这个简单的 ggplot:
我在上面画了一条黑边,所以更容易想象它有多大。
我不明白为什么这个情节这么大。我的代码中没有任何内容告诉 ggplot 我想要绘图上方或下方的任何区域。
这似乎每次都能吸引我。如何控制 ggplot 中的 canvas 大小?
library(ggplot2)
hex=c("#CC0000", "#90BD31", "#178CCB")
q <- ggplot(data=NULL)
q <- q + geom_rect(data=NULL, aes(xmin=0, xmax=1, ymin=0.5, ymax=1.5), fill=hex[1])
q <- q + geom_rect(data=NULL, aes(xmin=1.5, xmax=2.5, ymin=0.5, ymax=1.5), fill=hex[2])
q <- q + geom_rect(data=NULL, aes(xmin=3, xmax=4, ymin=0.5, ymax=1.5), fill=hex[3])
q <- q + annotate("text", x=.5, y=0.1, label='Impaired', size=4)
q <- q + annotate("text", x=2, y=0.1, label='Normal', size=4)
q <- q + annotate("text", x=3.5, y=0.1, label='Optimal', size=4)
q <- q + coord_fixed()
q <- q + theme_classic()
q <- q + 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(),
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank())
q
使用 ggplot2 plot.margin and/or panel.margin theme options 您应该能够控制内部边距,一旦您充分设置了 canvas 的输出尺寸。这当然适用于普通图形设备,也应该适用于闪亮的应用程序:
library(ggplot2)
library(grid)
hex=c("#CC0000", "#90BD31", "#178CCB")
q <- ggplot(data=NULL)
q <- q + geom_rect(data=NULL, aes(xmin=0, xmax=1, ymin=0.5, ymax=1.5), fill=hex[1])
q <- q + geom_rect(data=NULL, aes(xmin=1.5, xmax=2.5, ymin=0.5, ymax=1.5), fill=hex[2])
q <- q + geom_rect(data=NULL, aes(xmin=3, xmax=4, ymin=0.5, ymax=1.5), fill=hex[3])
q <- q + annotate("text", x=.5, y=0.1, label='Impaired', size=4)
q <- q + annotate("text", x=2, y=0.1, label='Normal', size=4)
q <- q + annotate("text", x=3.5, y=0.1, label='Optimal', size=4)
q <- q + coord_fixed()
q <- q + theme_classic()
q <- q + 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(),
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank(),
plot.margin=unit(c(0,0,0,0), "cm"),
panel.margin=unit(c(0,0,0,0), "cm"))
q
考虑这个简单的 ggplot:
我在上面画了一条黑边,所以更容易想象它有多大。
我不明白为什么这个情节这么大。我的代码中没有任何内容告诉 ggplot 我想要绘图上方或下方的任何区域。
这似乎每次都能吸引我。如何控制 ggplot 中的 canvas 大小?
library(ggplot2)
hex=c("#CC0000", "#90BD31", "#178CCB")
q <- ggplot(data=NULL)
q <- q + geom_rect(data=NULL, aes(xmin=0, xmax=1, ymin=0.5, ymax=1.5), fill=hex[1])
q <- q + geom_rect(data=NULL, aes(xmin=1.5, xmax=2.5, ymin=0.5, ymax=1.5), fill=hex[2])
q <- q + geom_rect(data=NULL, aes(xmin=3, xmax=4, ymin=0.5, ymax=1.5), fill=hex[3])
q <- q + annotate("text", x=.5, y=0.1, label='Impaired', size=4)
q <- q + annotate("text", x=2, y=0.1, label='Normal', size=4)
q <- q + annotate("text", x=3.5, y=0.1, label='Optimal', size=4)
q <- q + coord_fixed()
q <- q + theme_classic()
q <- q + 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(),
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank())
q
使用 ggplot2 plot.margin and/or panel.margin theme options 您应该能够控制内部边距,一旦您充分设置了 canvas 的输出尺寸。这当然适用于普通图形设备,也应该适用于闪亮的应用程序:
library(ggplot2)
library(grid)
hex=c("#CC0000", "#90BD31", "#178CCB")
q <- ggplot(data=NULL)
q <- q + geom_rect(data=NULL, aes(xmin=0, xmax=1, ymin=0.5, ymax=1.5), fill=hex[1])
q <- q + geom_rect(data=NULL, aes(xmin=1.5, xmax=2.5, ymin=0.5, ymax=1.5), fill=hex[2])
q <- q + geom_rect(data=NULL, aes(xmin=3, xmax=4, ymin=0.5, ymax=1.5), fill=hex[3])
q <- q + annotate("text", x=.5, y=0.1, label='Impaired', size=4)
q <- q + annotate("text", x=2, y=0.1, label='Normal', size=4)
q <- q + annotate("text", x=3.5, y=0.1, label='Optimal', size=4)
q <- q + coord_fixed()
q <- q + theme_classic()
q <- q + 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(),
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank(),
plot.margin=unit(c(0,0,0,0), "cm"),
panel.margin=unit(c(0,0,0,0), "cm"))
q