【问题标题】:Percentage format for y axis in mschartmschart 中 y 轴的百分比格式
【发布时间】:2020-03-18 18:57:50
【问题描述】:

好吧,这有点让我发疯。希望我只是愚蠢,有人可以快速指出我正确的答案。我正在尝试将 y 轴格式化为百分比而不是数字。这是一个简单的例子......

library(officer)
library(mschart)
data = data.frame(x = c(1, 1, 2, 2, 3, 3),
                  y = c(.05, .05, .06, .06, .07, .07),
                  group = c("A", "B", "A", "B", "A", "B"))

output <- data %>%
  ms_barchart(x = "x", y = "y", group = "group") %>%
  chart_settings(dir = "vertical") %>%
  chart_data_labels(show_val = TRUE, show_legend_key = FALSE, num_fmt = "0.00%") %>%
  chart_labels(title = " ", xlab = " ", ylab = " ")  %>%
  chart_ax_y(display = TRUE, limit_min = 0, num_fmt = "0.00") %>%
  chart_ax_x(major_tick_mark = "none")

doc <- read_pptx()
doc <- add_slide(doc, layout = "Title and Content", master = "Office Theme")
doc <- ph_with(doc, output, location = ph_location_fullsize())
print(doc, paste0(file.path(path.expand('~'),'Desktop'),"/num_fmt.pptx"))

上述代码不会产生错误,但格式不符合要求。

在 chart_ax_y 函数中使用 num_fmt = "0.00%" 会在尝试打印 pptx 文件时产生错误: sprintf(str_, id, cross_id) 中的错误:无效格式 '%" s';使用格式 %s 作为字符对象

在 chart_ax_y 函数中使用 num_fmt = "0.00\%\%" (这是 mschart 文档所说的)在尝试创建输出对象时会产生以下错误:错误:'\%' is an unrecognized escape在以 ""0.00\%" 开头的字符串中

请帮忙!

【问题讨论】:

  • 我不熟悉这个包,但是 SO 上的 this example 使用了不同的格式,没有反斜杠。反斜杠可能是文档错误吗?不确定这会有所帮助,但希望如此。
  • 天哪,非常感谢你!这样可行!看起来文档可能已经过时了。感谢您为我找到它!
  • 酷。刚刚为您的评论添加了答案。希望没有其他人遇到它。稍后将在 Github 上提交问题 :)

标签: r mschart officer


【解决方案1】:

从@Jessica 的一些小实验和mschart 包上的一些旧参考资料来看,documentation on CRAN 似乎是错误的,并且不应该出现反斜杠,尽管百分号要重复。

chart_ax_y(display = TRUE, limit_min = 0, num_fmt = "0.00%%")

mschart 上的另一个参考链接:how to resize plot area in R mschart

【讨论】:

    猜你喜欢
    • 2015-09-30
    • 2017-06-21
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多