跨多面板条形图在条形图中获取所有相同大小的条形图
Getting Bar in barplot all the same size across multi panel barplots
我有一个奇怪的问题,我正在使用 par() 制作 muli-panel 条形图,我注意到条形图的大小不同,我想知道是否可以使条形图的宽度相同每个面板的(尺寸)?这将创建不同尺寸的面板,但这很好。任何评论都会有所帮助。
我有这个通用示例:
# create data
a<-c(1:100)
b<-c(1:200)
c<-c(1:300)
d<-c(1:400)
e<-c(1:500)
#make dataframes for barplots
test<-as.data.frame(cbind(a,b))
test1<-as.data.frame(cbind(a,b,c))
test2<-as.data.frame(cbind(a,b,c,d))
test3<-as.data.frame(cbind(a,b,c,d,e))
#gets means for each column
a1<-colMeans(test)
a2<-colMeans(test1)
a3<-colMeans(test2)
a4<-colMeans(test3)
#lets plot
pdf(file= "/Users/Highf_000/Desktop/prac.pdf");
par(mfrow = c(2, 4), # 2 rows x 4 columns layout
oma = c(2, 2, 0, 0), # two rows of text at the outer left and bottom margin
mar = c(5, 5, 2, 1)+0.1, # space for one row of text at ticks and to separate plots
mgp = c(2, 1, 0), # axis label at 2 rows distance, tick labels at 1 row
xpd = NA)
barplot(mean(a))
barplot(a1)
barplot(a2)
barplot(a3)
barplot(a4)
dev.off()
This is the output
After Rebecca's suggestion
我们如何克服情节在多情节布局中消失的问题,以及如何将标题固定在条形图而不是情节的中心?
简化你的例子
a1 <- c(1,2)
a2 <- c(1,2,3)
a3 <- c(1,2,3,4)
barplot(a1) ## produces uneven bars
barplot(a2) ## produces uneven bars
barplot(a3) ## produces uneven bars
如 所述,您至少可以执行以下操作之一:
选项 1
df <- data.frame(bar1 = c(1, 2, 0,0),
bar2 = c(1, 2, 3, 0),
bar3 = c(1, 2, 3, 4))
barplot(as.matrix(df), beside = TRUE)
选项 2
bar1 <- barplot(a1, xlim = c(0, 1), width = 0.1)
bar2 <- barplot(a2, xlim=c(0,1), width = 0.1)
bar3 <- barplot(a3, xlim=c(0,1), width = 0.1)
如果您不喜欢 barplot,还有 ggplot 选项。
我有一个奇怪的问题,我正在使用 par() 制作 muli-panel 条形图,我注意到条形图的大小不同,我想知道是否可以使条形图的宽度相同每个面板的(尺寸)?这将创建不同尺寸的面板,但这很好。任何评论都会有所帮助。
我有这个通用示例:
# create data
a<-c(1:100)
b<-c(1:200)
c<-c(1:300)
d<-c(1:400)
e<-c(1:500)
#make dataframes for barplots
test<-as.data.frame(cbind(a,b))
test1<-as.data.frame(cbind(a,b,c))
test2<-as.data.frame(cbind(a,b,c,d))
test3<-as.data.frame(cbind(a,b,c,d,e))
#gets means for each column
a1<-colMeans(test)
a2<-colMeans(test1)
a3<-colMeans(test2)
a4<-colMeans(test3)
#lets plot
pdf(file= "/Users/Highf_000/Desktop/prac.pdf");
par(mfrow = c(2, 4), # 2 rows x 4 columns layout
oma = c(2, 2, 0, 0), # two rows of text at the outer left and bottom margin
mar = c(5, 5, 2, 1)+0.1, # space for one row of text at ticks and to separate plots
mgp = c(2, 1, 0), # axis label at 2 rows distance, tick labels at 1 row
xpd = NA)
barplot(mean(a))
barplot(a1)
barplot(a2)
barplot(a3)
barplot(a4)
dev.off()
This is the output
After Rebecca's suggestion
我们如何克服情节在多情节布局中消失的问题,以及如何将标题固定在条形图而不是情节的中心?
简化你的例子
a1 <- c(1,2)
a2 <- c(1,2,3)
a3 <- c(1,2,3,4)
barplot(a1) ## produces uneven bars
barplot(a2) ## produces uneven bars
barplot(a3) ## produces uneven bars
如
选项 1
df <- data.frame(bar1 = c(1, 2, 0,0),
bar2 = c(1, 2, 3, 0),
bar3 = c(1, 2, 3, 4))
barplot(as.matrix(df), beside = TRUE)
选项 2
bar1 <- barplot(a1, xlim = c(0, 1), width = 0.1)
bar2 <- barplot(a2, xlim=c(0,1), width = 0.1)
bar3 <- barplot(a3, xlim=c(0,1), width = 0.1)
如果您不喜欢 barplot,还有 ggplot 选项。