gpt4 book ai didi

r - 对带有 png 输出的 ggplot2 中的轴标签使用等宽字体

转载 作者:行者123 更新时间:2023-12-05 06:31:29 25 4
gpt4 key购买 nike

我在处理基因组数据时想要绘制三核苷酸的频率。我想用 ggplot2 生成一个 png 图,我在 Linux Centos 计算机上工作。正如您在图中看到的,x.axis 标签没有完全对齐,因为字母的大小不同。我想使用 monospaced 字体,所以我尝试使用“family”参数来修改主题,但这没有任何效果。我已经看到并测试了许多使用“extrafont”包的答案,但没有结果,因为它似乎不适用于 png 输出。是否有一种在 ggplot2 中使用或不使用附加包的等宽字体(例如 Courier)的简单方法?

enter image description here

这是我迄今为止基于最小数据集的代码示例。

testData <- data.frame(freq = rnorm(10),
context = c("ACA","ACC","ACG","ACT","CCA",
"CCC","CCG","CCT","GCA","GCC"))
a <- ggplot(testData, aes(x=context, y=freq)) +
geom_bar(stat="identity", width = 0.4, fill = "royalblue") +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5,
size = 10, family = "mono"),
axis.title.x=element_blank())
ggsave("test.png",
plot=a,
width=2, height=2,
device = "png",
dpi = 300,
type = "cairo")

最佳答案

看起来 ggsave() 中的 type = "cairo" 是导致问题的原因。

您的绘图代码是正确的,当我在 RStudio 绘图窗口中查看您的绘图时,我看到了您想要的等宽字体。但是,当您保存绘图时,等宽字体被另一种字体替换,大概是因为 cairo 有它自己的字体默认值(您保存的绘图中的所有字体都是衬线字体,即使 ggplot 默认字体是无衬线字体并且您从未编辑过y 轴上的文本)。

通过从 ggsave()

中删除 type = "cairo",我能够用等宽字体保存你的绘图
ggsave("test.png", plot = a, width = 2, height = 2, device = "png", dpi = 300)

enter image description here

关于r - 对带有 png 输出的 ggplot2 中的轴标签使用等宽字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com