gpt4 book ai didi

r - Knitr:使用 scales 包在 ggplot 中获取计数

转载 作者:行者123 更新时间:2023-12-04 10:39:07 24 4
gpt4 key购买 nike

我通常使用 scales在 R 中打包以在我的 ggplots 的 y 轴上给出计数数据的百分比。但是,当我尝试在 knitr 中执行此操作时,由于绘图上的百分比符号而出现错误:
Error in getMetricsFromLatex(TeXMetrics) :
TeX was unable to calculate metrics for the following string or character:
0%

我可以使用正常的计数轴生存,但更喜欢 %.有没有解决的办法?

这是一个可重现的示例(删除 + scale_y_continuous(label=percent) 给出了一个可编译的示例):

\documentclass[11pt]{article}
\usepackage{tikz}

\begin{document}
<<packages, echo=F>>=
library(ggplot2)
library(scales)
@
<<chunkopts, echo=F>>=
opts_chunk$set(echo=F, cache=T, autodep=T, fig.width = 9/1.5, fig.height=5/1.5,
fig.align="center", dev="tikz", fig.pos="h!tbp", warning=F, message=F)
dep_auto()
@
<<mydata>>=
mydata <- data.frame(
X = letters[1:10],
Y = sample(c("yes", "no"), 100, replace = TRUE))
@
<<plot>>=
ggplot(mydata, aes(X, fill = Y)) + geom_bar(position = "fill") +
scale_y_continuous(label=percent)
@
\end{document}

我正在使用 TexShop 编译我的 .Rnw 文件。

最佳答案

问题是%是 latex 中的一个特殊字符,它需要转义。试试下面的替代量表

library(stringr)
library(plyr)
latex_percent <- function (x) {
x <- plyr::round_any(x, scales:::precision(x)/100)
stringr::str_c(comma(x * 100), "\\%")
}

并替换 labels=percentlabels=latex_percent .

关于r - Knitr:使用 scales 包在 ggplot 中获取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22477971/

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