我希望使用堆叠柱状图制作一个“时间轴”。我想做的是去除所有背景,只留下一根条形图。但是我卡在了图表的白色背景上。
这是一个最简示例:
给我一个条形图,但是背景很大。 。(为了显示背景的范围,我已经注释掉了
结果是一根非常宽的条形图(因为我使用了coord_flip,所以在页面上很高): 现在我需要做的就是缩小高度(如图片所示),使其更像原来的条形图。我该怎么改变呢?
解决方案:
我最终找到了一个简单的解决方案。由于我正在使用R Markdown,我使用了:
这是一个最简示例:
mytheme <- theme(
axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
#panel.background = element_blank()
)
Name <- c("One", "Two", "Three", "Four")
value <- c(2, 5, 7, 8)
df <- data.frame(Name, value)
ggplot(df)+
aes(x= "Name", y = value, fill = Name) +
geom_col(width = .1, show.legend = FALSE) +
xlab("") + ylab("") +
coord_flip() +
mytheme
给我一个条形图,但是背景很大。 。(为了显示背景的范围,我已经注释掉了
panel.background
。我想“裁剪”那个白色背景,只留下条形图或者只有一点空间围绕着条形图。请帮忙。更新:在@Gregor的建议下,我修改了代码ggplot
如下:)ggplot(df)+
aes(x= "Name", y = value, fill = Name) +
geom_col(width = .1, show.legend = FALSE) +
xlab("") + ylab("") +
coord_flip(expand = FALSE) +
mytheme
结果是一根非常宽的条形图(因为我使用了coord_flip,所以在页面上很高): 现在我需要做的就是缩小高度(如图片所示),使其更像原来的条形图。我该怎么改变呢?
解决方案:
我最终找到了一个简单的解决方案。由于我正在使用R Markdown,我使用了:
```{r, ..., fig.width=4, fig.height=.3}
在嵌入图形的前置条件中。虽然不是最好的解决方案,但它确实有效。感谢大家。
x = "Name"
改为aes(x = 1)
,数值型的 x 轴会填充空间并随着调整自动调整大小。(b)在coord
调用内使用expand = FALSE
。(c)使用coord_fixed
替代coord_flip
- 这意味着您需要使用geom_tile
而不是geom_col
来获得横向的结果。 - Gregor Thomasexpand = FALSE
很有意思。我正在努力理解ggplot2的基础知识,所以还不是很熟练。也在看geom_tile
。 - Kaveh1000plot.margin=unit(c(-100,-2,-100,-2), "cm")
,然后在输出设备中缩小它,例如ggsave("plot.png", width = 5, height = 1)
。 - Darek Bienkowskicoord_flip(expand = FALSE)
和aes(x = 1)
。现在我有了一个没有边框的“粗”条形图。因此,在上面的图表中,高度已经增加了。我只需要知道如何减小那个高度。谢谢。 - Kaveh1000png()
、jpeg()
等函数中更改高度/宽度) - Z.Lin