减小ggplot中图形的大小-R

时间:2018-06-26 19:46:01

标签: r ggplot2 graph size

对于这张图,我有两个问题:

enter image description here

首先,我是如何减小图形大小的?,我尝试使用coord_fixed

ggplot(x, aes(fill=is_pass, y=percent_diff, x=difficulty_level)) + 
    geom_bar(position="dodge", stat="identity") +
    coord_fixed(ratio = 0.05)

但是它只是改变图形的尺寸比例,而不是尺寸。我正在寻找一个简单的答案,例如:

ggplot(x, aes(fill=is_pass, y=percent_diff, x=difficulty_level)) + 
    geom_bar(position="dodge", stat="identity") +
    size(width=5, length=4) # or something like this

第二个问题是,is_pass被定义为只有两个类别0和1的因子。但是,ggplots将is_pass作为数值,而没有将其绘制为类别0和1。您可以在图中看到。为什么?

3 个答案:

答案 0 :(得分:0)

您可以通过在width中添加geom_bar()来调整条形的大小 像这样:geom_bar(..., width=0.1)

我不明白第二个问题到底是指什么。由于is_pass具有因子级别,因此,因子值由两种不同的颜色来表示似乎很有意义。

答案 1 :(得分:0)

关于大小,您可以尝试在主题中设置边距,例如:

theme(plot.margin = unit(c(1,1,1,1),"cm"))

边距为t,r,b,l。

答案 2 :(得分:0)

在调用ggplot之前,它可能满足您设置图形窗口大小的需要。

dev.new(width=5, height=4)

您可能需要尝试以获取所需的尺寸。

这是一个完整的例子。

library(ggplot2)
df <- data.frame(dose=c("D0.5", "D1", "D2"),
                len=c(4.2, 10, 29.5))
head(df)

ggplot(data=df, aes(x=dose, y=len)) +
  geom_bar(stat="identity")

dev.new(width=5, height=4)
ggplot(data=df, aes(x=dose, y=len)) +
  geom_bar(stat="identity")

Two barplots

您会看到第二个图要小得多。