【问题标题】:Displaying greater than sign in ggsurvplot (unicode errrors)在 ggsurvplot 中显示大于号(unicode 错误)
【发布时间】:2021-09-10 18:59:35
【问题描述】:

我试图在我的分层标签中为 ggsurvplot 对象显示大于号。我在不同的情节中生成了类似的东西(下图):

上图中的功能代码

kmcurve_spd <- ggsurvplot(km_fitp1_spd, 
              palette = c("#202960", "#8CC63E", "#5B9BD5", "#8f94af"), 
              xlab = "Time (Months)", 
              legend.labs = c(paste0("<500 mm","\u00b2"), paste0("\u2265","500",
                " or <1000 mm","\u00b2"), paste0("\u2265", "1000 or <1500 mm","\u00b2"),
                paste0("\u2265","1500 mm\u00b2")))

通常,我在字符串中显示&gt; 没有问题。但是,当我尝试使用"&gt;1 Prior Progressions""&gt;" 作为标签时,我不断遇到以下警告和错误代码:

Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
   font family not found in Windows font database
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
  font family not found in Windows font database
Error: gridtext has encountered a tag that isn't supported yet: <blockquote>
Only a very limited number of tags are currently supported.

以下是导致错误的我的代码的截断示例。

有错误的代码

kmcurve_pd <- ggsurvplot(km_fitp1_pd, 
              palette = c("#202960", "#8CC63E"), 
              xlab = "Time (Months)", 
              legend.labs = c(paste0("\u2265","1 Prior Progression"), ">1 Prior Progression"))

#this also generates the same error

kmcurve_pd <- ggsurvplot(km_fitp1_pd, 
              palette = c("#202960", "#8CC63E"), 
              xlab = "Time (Months)", 
              legend.labs = c(paste0("\u2265","1 Prior Progression"), 
                paste0(">","1 Prior Progression")))

但是,当我将 legend.labs 向量替换为 unicode 和字符串的组合时,我能够运行代码,这让我得出结论,&gt; 导致了错误。我通常使用这个网站快速搜索 unicode 并找到 &gt; 标志的 unicode:https://www.compart.com/en/unicode/U+003E

然而,这个 unicode 似乎对应于错误的符号。代码运行没有任何错误(只有以下警告 x6:Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font family not found in Windows font database)。产生错误符号的图像和代码如下:

符号不正确的代码

kmcurve_pd <- ggsurvplot(km_fitp1_pd, 
              palette = c("#202960", "#8CC63E"), 
              xlab = "Time (Months)", 
              legend.labs = c(paste0("\u2264","1 Prior Progression"), paste0("\u00e3",
                "1 Prior Progression")))

是否有任何解决方法可以让&gt; 正确显示?我真的不想只使用文字,因为我在其余的情节中使用了符号,它看起来不合适。如果 KM fit 对象的表示会有所帮助,我可以提供。谢谢!

【问题讨论】:

  • 您能分享您创建 survfit 对象的数据和代码吗?
  • 您的字体是否呈现 fullwidth 变体 \uFF1C\uFF1E)而不是 &lt;&gt;\u003C\u003E)?
  • 或者试试˂ | ˃ (\u02C2 | \u02C3) 左或右 箭头
  • @JosefZ 改用了右箭头,效果很好!非常感谢!发布解决方案作为答案。

标签: r ggplot2 unicode survminer


【解决方案1】:

根据@JosefZ 的建议,我使用了正确的箭头 unicode 来生成并且效果很好。包含解决方案的最终代码如下:

kmcurve_pd <- ggsurvplot(km_fitp1_pd, 
              palette = c("#202960", "#8CC63E"), 
              xlab = "Time (Months)", 
              legend.labs = c(paste0("\u2264","1 Prior Progression"), 
                  paste0("\u02C3","1 Prior Progression"))

【讨论】:

    猜你喜欢
    • 2015-08-03
    • 2013-01-28
    • 2010-12-14
    • 1970-01-01
    • 2012-10-22
    • 2018-12-06
    • 2011-03-11
    相关资源
    最近更新 更多