我使用 Rmarkdown,我正在使用 ggarrange 创建许多由不同 ggplot2 图表组成的图形。问题是我无法为单个块内的数字设置不同的大小。我设法设置图形大小的唯一方法是在块选项中,例如:
{r 图 1,图高度 = 4,图宽度 = 7}
有没有办法在每个 ggplot() 或 ggarrange() 函数中设置绘图/网格大小?
详细信息、数据和代码:
我所有的主图都具有相同大小的网格区域,但最终图形的大小会根据它们包含的主图的数量而变化。此外,出于注释目的(例如使用 annotation_figures() 函数),第一行中的图表必须具有较大的顶部边距(用于标题),而最后一行中的图表必须具有较大的底部边距(用于标题)。额外的边距,为标题和说明(例如文本格罗布)腾出空间不应改变绘图网格大小,我希望图形中的所有绘图都相同。
我有一个名为“A1”的数据框示例:
library("pacman")
p_load(ggplot2, ggpubr, hrbrthemes, tidyverse)
year <- rep(seq(2010,2019, 1), each=3)
name <- rep(c("A", "B", "C"), times=10)
n1 <- c(0,0,1,0,2,1,1,1,1,2,0,2,0,2,1,3,2,0,1,4,2,2,9,4,8,11,8,7,9,8)
n2 <- c(7,3,1,14,1,1, 15,4,4,19,9,4,26,9,4,46,4,3,52,12,3,37,12,5,45,10,5,47,18,4)
name2 <- name
A1 <-data.frame(year,name,n1,n2,name2)
Run Code Online (Sandbox Code Playgroud)
使用这个数据框,我在一个块中构建了第一行图,规格为 {fig.height = 4.3, fig.width = 7}。此绘图行包含三个绘图(使用 facet_wrap 制作)和 0.3 英寸的顶部边距,以便为最终图中的标题注释腾出空间,并且没有底部边距。该绘图行也有自己的标题,其作用类似于最终图中的副标题或标签。
AA.1 <- A1 %>%
ggplot( aes(x=year, y=n1)) +
geom_line( data=A1 %>% dplyr::select(-name), aes(group=name2), color="grey", size=1.0, alpha=0.6) +
geom_line( …
Run Code Online (Sandbox Code Playgroud) 我正在使用 RMarkdown 并尝试使用 kable 包。我有一个三变量数据框:性别(因子)、年龄组(因子)和测试分数(尺度)。我想创建双向表,其中因子变量(性别和年龄组)作为表行和列,并将 test_scores 的汇总统计信息作为单元格内容。这些汇总统计数据包括平均值、标准差和百分位数(中位数、第 1 个十分位数、第 9 个十分位数和第 99 个百分位数)。有没有一种简单的方法可以以漂亮的方式构建这些表(例如使用 kable 包),而无需先将所有这些值输入到矩阵中?我搜索了 kable 帮助文件,但找不到如何操作。
# How my data looks like:
gender <- rep(c(rep(c("M", "F"), each=3)), times=3)
age <- as.factor(rep(seq(10,12, 1), each=6))
score <- c(4,6,8,4,8,9,6,6,9,7,10,13,8,9,13,12,14,16)
testdata <-data.frame(gender,age,score)
| gender | age | score |
|--------|-----|-------|
| M | 10 | 4 |
| M | 10 | 6 |
| M | 10 | 8 |
| F | 10 | 4 |
| F | 10 | …
Run Code Online (Sandbox Code Playgroud) 我有一个很大的数据框(在一个小样本下面),我需要根据某些条件将所有以相同前缀开头的列转换为多列,保留原始变量并将原始后缀带入新变量。
数据:
egp <= structure(list(EGP_2007 = structure(c("", "", "II", "", "", "", "", "", "V", "VI"), format.sas = "$"),
EGP_2008 = structure(c("", "", "IIIb", "", "", "", "IIIb", "", "V", "VI"), format.sas = "$"),
EGP_2009 = structure(c("", "", "IIIb", "", "", "", "I", "II", "V", "I"), format.sas = "$"),
EGP_2010 = structure(c("", "", "", "", "", "I", "", "II", "V", "I"), format.sas = "$"),
EGP_2011 = structure(c("I", "II", "", "", "", "I", "", "II", "V", "I"), format.sas = "$"),
EGP_2012 …
Run Code Online (Sandbox Code Playgroud)