标签: facet-wrap

ggplot2中facet_wrap()和facet_grid()之间有什么区别?

我一直在阅读这ggplot2两个功能的文档.我想知道使用每个函数(facet_wrap()facet_grid())的差异和正确的情况是什么.

library(ggplot2)

p <- qplot(displ, hwy, data = mpg)
p + facet_wrap(~ cyl)

p + facet_grid(~ cyl)
Run Code Online (Sandbox Code Playgroud)

我提供这个小例子作为起点.差异似乎是包裹使得情节更加自主,并且网格使得一个情节全部在一起.

r ggplot2 facet-wrap

64
推荐指数
4
解决办法
5万
查看次数

ggplot2:facet_wrap基于数据集中变量的条带颜色

有没有办法根据随数据框提供的变量填充使用facet_wrap创建的facet条?

示例数据:

MYdata <- data.frame(fruit = rep(c("apple", "orange", "plum", "banana", "pear", "grape")), farm = rep(c(0,1,3,6,9,12), each=6), weight = rnorm(36, 10000, 2500), size=rep(c("small", "large")))

示例图:

p1 = ggplot(data = MYdata, aes(x = farm, y = weight)) + geom_jitter(position = position_jitter(width = 0.3), aes(color = factor(farm)), size = 2.5, alpha = 1) + facet_wrap(~fruit)

我知道如何更改条带的背景颜色(例如橙色):

p1 + theme(strip.background = element_rect(fill="orange"))

facet_wrap和橙色条纹颜色

有没有办法转嫁值的变量sizeMYdata的参数fillelement_rect

基本上,对于所有条带而不是1种颜色,我希望小水果(苹果,李子,梨)的条带背景颜色为绿色,大果实(橙色,香蕉,葡萄)的背景颜色为红色.

r ggplot2 facet-wrap

52
推荐指数
4
解决办法
3万
查看次数

在facet_wrap图中添加"浮动"轴标签

我和这个用户有同样的问题- 我有一个'锯齿状'刻面图,其中底行的面板比其他行少,我想在每列的底部有x轴刻度.

该问题的建议解决方案是设置scales="free_x".(在ggplot 0.9.2.1中;我相信我正在寻找的行为在早期版本中是默认的.)在我的情况下,这是一个糟糕的解决方案:我的实际轴标签会相当长,所以将它们放在每一行下会占用太多房间.结果是这样的:

 x <- gl(3, 1, 15, labels=paste("this is a very long axis label ", letters[1:5]))
 y <- rnorm(length(x))
 l <- gl(5, 3, 15)
 d <- data.frame(x=x, y=y, l=l)
 ggplot(d, aes(x=x, y=y)) + geom_point() + facet_wrap(~l, scales="free_x") + 
   theme(axis.text.x=element_text(angle=90, hjust=1))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这里的评论中,Andrie建议可以手动完成,grid但我不知道如何开始.

r ggplot2 facet-wrap

42
推荐指数
1
解决办法
7403
查看次数

将x和y轴添加到所有facet_wrap

通常希望最小化图中的墨水.我有一个刻面的情节(facet_wrap),并希望删除尽可能多的墨水,但保持可读性.我已按照我的意愿进行设置,除非在小平面(子图)中不存在x和y轴,除非在最左侧或底部.如此大量的墨水被移除,我相信眼睛需要这些暗示,并且正在询问如何将x和y轴放在a中的所有图中facet_wrap.下面是我的代码到目前为止,当前输出和所需的输出(红线是所需的加入):

library(ggplot); library(grid)

ggplot(mtcars, aes(mpg, hp)) + 
    geom_point() + 
    facet_wrap(~carb) +
    theme(panel.grid = element_blank(),
        panel.background = element_rect(fill = "white", colour = "black"), 
        panel.border = element_rect(fill = NA, colour = "white"), 
        axis.line = element_line(),
        strip.background = element_blank(),
        panel.margin = unit(2, "lines"))
Run Code Online (Sandbox Code Playgroud)

当前情节 在此输入图像描述

期望的情节 在此输入图像描述

r facet ggplot2 facet-wrap

30
推荐指数
5
解决办法
2万
查看次数

在ggplot2中为每个facet_wrap网格放置一个图例

我有这个数据框:

        Date Server FileSystem PercentUsed
1  12/1/2011      A          /          60
2   1/2/2012      A       /var          50
3   2/1/2012      A        tmp          90
4  2/10/2012      A        /db          86
5  2/13/2012      A       /app          90
6  12/1/2011      B         C:          67
7   1/2/2012      B         D:          67
8   2/1/2012      B         F:          34
9  2/10/2012      B   /restore          89
10 2/13/2012      B         G:          56
11 12/1/2011      C          /          90
12  1/2/2012      C       /tmp          78
13  2/1/2012      C      /data          67
14 2/10/2012      C   /Storage          34
15 2/13/2012      C  /database          12 …
Run Code Online (Sandbox Code Playgroud)

r legend facet ggplot2 facet-wrap

25
推荐指数
3
解决办法
1万
查看次数

在facet_wrap多色图中更改图标题大小

可以帮我改变这些图的标题文字大小.即使它们变大?在此输入图像描述

脚本

ggplot(NMPSCMOR, aes(Length,  fill=Year)) + 
  geom_histogram(position="dodge", binwidth=60,  colour="black") + xlim(0, 600) +
  scale_fill_grey(start = 1, end = 0)+ 


  geom_vline(data=ddply(NMPSCMOR, Year~Morphology~Sector2, numcolwise(mean)), 
             mapping=aes(xintercept=Length,color=Year),  linetype=2, size=1) + 
  scale_color_grey(start=1,end=0)+

  xlab("Length Class") +
  ylab(expression(paste("Total Count"))) + #( ", m^2, ")", sep = 
  facet_wrap( ~ Morphology + Sector2, ncol=3, scales = "free") +
  theme(

    panel.grid.minor = element_blank(),               #removes minor grid lines
  panel.grid.major = element_blank())
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-wrap

21
推荐指数
1
解决办法
2万
查看次数

ggplot2:将多变量facet_wrap标签放在一行上

我使用facet_wrap将我的散点图分割为

facet_wrap(x~y+z)
Run Code Online (Sandbox Code Playgroud)

根据需要,这会在我的案例中生成22个图.但是,这22个图中的每一个的标签显示为3行(x,y和z),这不必要地消耗窗口中的空间并将图块拼成一个小区域.我宁愿希望我的情节更大.由于变量y和z很短,我想将它们显示在同一行而不是两行中.

我查看了贴标机选项,但它们似乎都没有做我想要的.我很感激这里有任何建议.

r facet ggplot2 facet-wrap

18
推荐指数
3
解决办法
1万
查看次数

Scales ="free"适用于facet_wrap,但不适用于facet_grid

我试图理解为什么输出facet_grid()和输出facet_wrap()是不同的,即使输入是相同的:

facet_grid

ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_grid(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

facet_wrap

ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_wrap(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

请参阅,该参数scales = "free"对于facet_grid()和没有相同的行为facet_wrap().有什么可以解释的?

r ggplot2 facet-wrap

18
推荐指数
1
解决办法
7813
查看次数

将facet_wrap分段为多页PDF

我一直在寻找解决方案,但似乎大多数处理单独生成的图表被合并为PDF格式,而不是将使用分面生成的图表分离到PDF的单独页面上.

示例数据

在上面的数据中使用以下代码,选择生成列表中的所有项目:

Ex<-read.csv("StackOverflowEx (3).csv")
library(ggplot2)
library(reshape2)
vars <- select.list(names(Ex),multiple=TRUE,graphics=TRUE)
Cases<-subset(Ex,select=vars)

gg<-melt(Cases,id=c("Item","Total","Admin"))
print(ggplot(gg, aes(x=Total,y=Admin))+
  geom_point(colour="dark green",size=1.5)+
  geom_point(aes(y=value,color=variable))+
  geom_smooth(aes(y=value,fill=variable),
              method=loess,size=1,linetype=1,se=T)+
  facet_wrap(~variable,ncol=2,nrow=1000)+
  ylim(0,1)+
  labs(x="Expected",y="Admin",title=vars))
Run Code Online (Sandbox Code Playgroud)

......应该生成所有8个(AH)案例的小平面包装.然而,生成这种情况往往会破坏图表并使它们的可读性降低,并且在实践中,我打算在500多个案例中使用它(它只返回标有列名称的条形图,没有可读图表).

是否可以指定转换为PDF时在单个页面上显示的构面图表数量,而不是将所有图表压缩到单个页面中?例如,使用上述数据,在单独包含所有8个案例的单独页面上生成两个2x2图(即第1页上的案例AD,第2页上的案例EH).

我可以通过突出显示4个案例+"项目","总计"和"管理员"并重复接下来的4个案例并组合生成的PDF来完成此操作.然而,在实践中有超过500个案例,这意味着超过100次迭代,有很多人为错误的可能性.一些帮助自动化过程将是很好的.

pdf r ggplot2 facet-wrap

17
推荐指数
1
解决办法
4973
查看次数

ggplot2:将facet/strip文本拆分为两行

考虑以下ggplot2图形,其中长小平面/条形文本分为两行.该文字超出了专门用于分面标题的区域.

library(ggplot2)
x <- c(1:3, 1:3)
y <- c(3:1, 1:3)
grp <- c(0, 0, 0, 1, 1, 1)
p <- qplot(x=x, y=y) + geom_line() + facet_wrap(~ grp)
grob <- ggplotGrob(p)
strip.elem.y <- grid.ls(getGrob(grob, "strip.text.x", 
                grep=TRUE, global=TRUE))$name
grob <- geditGrob(grob, strip.elem.y[1], 
        label="First line and\n second line" )
grid.draw(grob)
Run Code Online (Sandbox Code Playgroud)

有没有办法增加条带文本区域的高度?

r graph ggplot2 facet-wrap

14
推荐指数
4
解决办法
8524
查看次数

标签 统计

facet-wrap ×10

ggplot2 ×10

r ×10

facet ×3

graph ×1

legend ×1

pdf ×1