相关疑难解决方法(0)

R:如何在facet_grid上使用带自由范围轴的coord_cartesian

考虑一些facet_grid情节

mt <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + geom_point() 
mt + facet_grid(vs ~ am, scales = "free") 
Run Code Online (Sandbox Code Playgroud)

plottttt

想象一下,我只想放大上图中的顶行,只显示3到4之间的y轴值.coord_cartesian()如果它们没有刻面或我想放大所有绘图,我可以这样做,但是在这种情况下没有一个好的解决方案.我想我可以先将数据子集化,但这是有充分理由的禁忌(例如,会抛弃任何统计层等).

(请注意,问题与此有关:R:{ggplot2}:如何/我可以独立调整facet_grid图上的x轴限制吗?但是那里的答案不适用于此目的.)

r ggplot2

11
推荐指数
2
解决办法
5311
查看次数

ggplot2:为条形图的分面布局中的行指定不同的比例

我的数据在包中ggplot2通过具有多个(~10)个面的条形图进行可视化。我想首先将这些方面分成几行。我可以使用函数facet_grid()facet_wrap()来实现此目的。在此处的最小示例数据中,我在两行 (4x2) 中构建了 8 个面。但是,我需要调整不同方面的比例,即:第一行包含小比例的数据,第二行的值更大。因此,我需要对第一行中的所有数据使用相同的比例,以便沿行比较它们,并为第二行使用另一个比例。

这是最小的示例和可能的解决方案。

#loading necessary libraries and example data
library(dplyr)
library(tidyr)
library(ggplot2)

trial.facets<-read.csv(text="period,xx,yy
A,2,3
B,1.5,2.5
C,3.2,0.5
D,2.5,1.5
E,11,13
F,16,14
G,8,5
H,5,4")

#arranging data to long format with omission of the "period" variable
trial.facets.tidied<-trial.facets %>% gather(key=newvar,value=newvalue,-period)
Run Code Online (Sandbox Code Playgroud)

现在正在策划自己:

#First variant
ggplot(trial.facets.tidied,aes(x=newvar,y=newvalue,position="dodge"))+geom_bar(stat ="identity") +facet_grid(.~period)

#Second variant:
ggplot(trial.facets.tidied,aes(x=newvar,y=newvalue,position="dodge"))+geom_bar(stat ="identity") +facet_wrap(~period,nrow=2,scales="free")
Run Code Online (Sandbox Code Playgroud)

第一个和第二个变体的结果如下:

在此输入图像描述

在这两个示例中,我们要么对所有图形使用自由比例,要么对所有图形使用固定比例。同时,第一行(前 4 个面)需要稍微缩放到 5,第二行需要缩放到 15。

作为使用facet_grid()函数的解决方案,我可以添加一个假变量“row”,它指定相应的字母应该属于哪一行。新数据集 Trial.facets.row(仅显示三行)如下所示:

period,xx,yy,row
C,3.2,0.5,1
D,2.5,1.5,1
E,11,13,2
Run Code Online (Sandbox Code Playgroud)

然后我可以将相同的重新排列为长格式,省略变量“句​​点”和“行”:

trial.facets.tidied.2<-trial.facets.row %>% gather(key=newvar,value=newvalue,-period,-row)
Run Code Online (Sandbox Code Playgroud)

然后,我沿着变量“行”和“周期”排列面,希望使用该选项scales="free_y"仅跨行调整比例:

ggplot(trial.facets.tidied.2,aes(x=newvar,y=newvalue,position="dodge"))+geom_bar(stat ="identity") +facet_grid(row~period,scales="free_y")
Run Code Online (Sandbox Code Playgroud)

并且 …

r facet ggplot2 facet-wrap facet-grid

5
推荐指数
1
解决办法
7455
查看次数

标签 统计

ggplot2 ×2

r ×2

facet ×1

facet-grid ×1

facet-wrap ×1