是否可以在 R 包 vcd 中使用 pairs_barplot 更改 barplot 刻度线标签的字体大小?
Is it possible to change the fontsize of barplot tick mark labels with pairs_barplot in R package vcd?
对于大量变量,在 R vcd[=23] 中使用 pairs_barplot()
创建的马赛克对图对角线上的条形图中刻度线标签的大小太大=] 包。有什么办法可以让它们变小吗?这是一个最小的工作示例:
library(vcd)
#> Loading required package: grid
library(vcdExtra)
#> Loading required package: gnm
pairs(table(ICU[,c(1,3:9)]),
diag_panel = pairs_barplot(
gp_vartext = gpar(fontsize = 10, fontface = 2),
gp_leveltext = gpar(fontsize = 8),
abbreviate = 1,
var_offset = 1.25))
由 reprex package (v2.0.1)
于 2021-10-16 创建
目前,您无法设置 gpar()
以显式绘制条形图的 y 轴。不过,有两种通用的解决方法:(1) 不要弄乱字体大小,而是在更大的设备上绘图。 (2) 设置具有不同 gpar(fontsize = ...)
的外部视口,用作绘图中更下方的视口。
(1) 更大的设备
为了说明,我在这里使用 png()
设备,因为 PNG 图形是我在 Whosebug 上嵌入的图形。但是,当然,您可以在其他设备上使用相同的技巧,包括那些不是您自己创建的设备,而是通过 R/Markdown 中的块选项等
我使用的设备尺寸为 13 x 13 英寸(相对于更常见的 6 x 6 或 7 x 7 英寸设置)。然后我可以省略所有 gpar()
设置,因为设备足够大以容纳默认参数。不过,我仍然设置 abbreviate
和 var_offset
。
png("pairs1.png", height = 13, width = 13, units = "in", res = 100)
pairs(table(ICU[, c(1, 3:9)]),
diag_panel = pairs_barplot(abbreviate = 1, var_offset = 1.25))
dev.off()
(2) 外部视口
或者,我可以自己创建一个新的 grid
页面,并推送一个 gpar(fontsize = 7)
的视口作为该视口及其子项的默认值。然后我将您的 gpar()
设置保留在 pairs_barplot()
中,并在 pairs()
调用中添加 newpage = FALSE
因为我想使用我已经创建的页面。
然后减小所有字体大小,以便在 7 x 7 英寸的设备上绘图可以正常工作。
png("pairs2.png", height = 7, width = 7, units = "in", res = 150)
grid.newpage()
pushViewport(viewport(gp = gpar(fontsize = 7)))
pairs(table(ICU[, c(1, 3:9)]),
diag_panel = pairs_barplot(
gp_vartext = gpar(fontsize = 10, fontface = 2),
gp_leveltext = gpar(fontsize = 8),
abbreviate = 1, var_offset = 1.25),
newpage = FALSE)
dev.off()
对于大量变量,在 R vcd[=23] 中使用 pairs_barplot()
创建的马赛克对图对角线上的条形图中刻度线标签的大小太大=] 包。有什么办法可以让它们变小吗?这是一个最小的工作示例:
library(vcd)
#> Loading required package: grid
library(vcdExtra)
#> Loading required package: gnm
pairs(table(ICU[,c(1,3:9)]),
diag_panel = pairs_barplot(
gp_vartext = gpar(fontsize = 10, fontface = 2),
gp_leveltext = gpar(fontsize = 8),
abbreviate = 1,
var_offset = 1.25))
由 reprex package (v2.0.1)
于 2021-10-16 创建目前,您无法设置 gpar()
以显式绘制条形图的 y 轴。不过,有两种通用的解决方法:(1) 不要弄乱字体大小,而是在更大的设备上绘图。 (2) 设置具有不同 gpar(fontsize = ...)
的外部视口,用作绘图中更下方的视口。
(1) 更大的设备
为了说明,我在这里使用 png()
设备,因为 PNG 图形是我在 Whosebug 上嵌入的图形。但是,当然,您可以在其他设备上使用相同的技巧,包括那些不是您自己创建的设备,而是通过 R/Markdown 中的块选项等
我使用的设备尺寸为 13 x 13 英寸(相对于更常见的 6 x 6 或 7 x 7 英寸设置)。然后我可以省略所有 gpar()
设置,因为设备足够大以容纳默认参数。不过,我仍然设置 abbreviate
和 var_offset
。
png("pairs1.png", height = 13, width = 13, units = "in", res = 100)
pairs(table(ICU[, c(1, 3:9)]),
diag_panel = pairs_barplot(abbreviate = 1, var_offset = 1.25))
dev.off()
(2) 外部视口
或者,我可以自己创建一个新的 grid
页面,并推送一个 gpar(fontsize = 7)
的视口作为该视口及其子项的默认值。然后我将您的 gpar()
设置保留在 pairs_barplot()
中,并在 pairs()
调用中添加 newpage = FALSE
因为我想使用我已经创建的页面。
然后减小所有字体大小,以便在 7 x 7 英寸的设备上绘图可以正常工作。
png("pairs2.png", height = 7, width = 7, units = "in", res = 150)
grid.newpage()
pushViewport(viewport(gp = gpar(fontsize = 7)))
pairs(table(ICU[, c(1, 3:9)]),
diag_panel = pairs_barplot(
gp_vartext = gpar(fontsize = 10, fontface = 2),
gp_leveltext = gpar(fontsize = 8),
abbreviate = 1, var_offset = 1.25),
newpage = FALSE)
dev.off()