ggplot 中的多行图表而不使用 facet
multiple row of charts in ggplot without using facet
假设我有一个太宽的图表,我想将其切成两半并将其显示为两个图表,一个使用 x 刻度范围的前半部分,第二个使用第二个一半。有简单的方法吗?
一个例子是 ggplot(diamonds, aes(x=price)) + geom_bar()
,我想要一张图表显示 0 到 20000 的价格范围,而不是上面的行生成的图表,我想要一个价格范围为 0 到 10000 的图表,另一个图表从 10000 到20000以下。它应该看起来像 facet_wrap
ped 但这里没有不同的变量。
EDIT:在我的实际图表中(不使用 diamonds
),我也使用 coord_flip()
,这显然会导致一些其他有效尝试出现问题。我很想得到一个也可以与 coord_flip()
一起使用的答案(即:一个图表在左边,另一个在右边,而不是垂直堆叠)
library(ggplot2)
library(gridExtra)
library(data.table) # not necessary, but better.
data(diamonds)
setDT(diamonds)
p1 = ggplot(diamonds[price > 0 & price <= 10000], aes(x=price)) + geom_bar()
p2 = ggplot(diamonds[price > 10000 & price < 20000], aes(x=price)) + geom_bar()
grid.arrange(p1, p2)
假设我有一个太宽的图表,我想将其切成两半并将其显示为两个图表,一个使用 x 刻度范围的前半部分,第二个使用第二个一半。有简单的方法吗?
一个例子是 ggplot(diamonds, aes(x=price)) + geom_bar()
,我想要一张图表显示 0 到 20000 的价格范围,而不是上面的行生成的图表,我想要一个价格范围为 0 到 10000 的图表,另一个图表从 10000 到20000以下。它应该看起来像 facet_wrap
ped 但这里没有不同的变量。
EDIT:在我的实际图表中(不使用 diamonds
),我也使用 coord_flip()
,这显然会导致一些其他有效尝试出现问题。我很想得到一个也可以与 coord_flip()
一起使用的答案(即:一个图表在左边,另一个在右边,而不是垂直堆叠)
library(ggplot2)
library(gridExtra)
library(data.table) # not necessary, but better.
data(diamonds)
setDT(diamonds)
p1 = ggplot(diamonds[price > 0 & price <= 10000], aes(x=price)) + geom_bar()
p2 = ggplot(diamonds[price > 10000 & price < 20000], aes(x=price)) + geom_bar()
grid.arrange(p1, p2)