在 R ggplot 轴中使用表达式和非 ASCII 字符

Using expression and non-ASCII character in R ggplot axis

我正在尝试使用带有上标和非 ASCII 字符的 ggplot 绘制图表。虽然带上标的表达式适用于简单字符,如下所示:

ggplot脚本的相关部分

      labs(
    y = "těžba, C [t]",
    x = "rok") +  
  scale_y_continuous(labels = unit_format(unit = "M", scale = 1e-6, accuracy = 1),
                     sec.axis = sec_axis(~.*4.2, name = expression("objem [m"^"3" * "]"),
                     breaks = seq(0,4e7,5e6), labels = function(b) { paste0(round(b/1000000, 0), " M")}))  +
  theme_bw() + theme(panel.grid.major = element_blank(), 
                     panel.grid.minor = element_blank())

ggplot

尝试对这些字符使用表达式时出现错误:ěž 而在没有 expression() 的 lext y 轴上没有问题。

scale_y_continuous(labels = unit_format(unit = "M", scale = 1e-6, accuracy = 1),
                   sec.axis = sec_axis(~.*4.2, name = expression("těžba, objem [m"^"3" * "]"),
                   breaks = seq(0,4e7,5e6), labels = function(b) { paste0(round(b/1000000, 0), " M")}))

Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, : Metric information not available for this family/device

我找不到解决方法。感谢任何帮助。


编辑

尝试使用 pngcairo-png 设备导出图像时出现不同错误消息的问题。没有抗锯齿的默认设备正在工作。

- Session info -----------------------------------------------------------
 setting  value                       
 version  R version 4.0.3 (2020-10-10)
 os       Windows 10 x64              
 system   x86_64, mingw32             
 ui       RStudio                     
 language (EN)                        
 collate  Czech_Czechia.1250          
 ctype    Czech_Czechia.1250          
 tz       Europe/Prague               
 date     2021-01-06      

为了扩展我的评论,这里有一个可重现的例子 - 展示了我如何尝试重现它 - 但我做不到。

可能是您的软件包不是最新的,或者只是您需要重新启动一个新会话:)

library(ggplot2)
ggplot(mtcars, aes(mpg, disp)) +
labs( y = expression("těžba, objem [m"^"3" * "]"))

reprex package (v0.3.0)

于 2021 年 1 月 6 日创建
devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.3 (2020-10-10)
#>  os       macOS Catalina 10.15.7      
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_GB.UTF-8                 
#>  ctype    en_GB.UTF-8                 
#>  tz       Europe/London               
#>  date     2021-01-06                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        

#>  ggplot2     * 3.3.2   2020-06-19 [1] CRAN (R 4.0.0)