0

オブジェクトの階層ラベルに大なり記号を表示しようとしてい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")))

>通常、文字列に記号を表示するのに問題はありません。ただし、をラベルとして使用しようとする">"">1 Prior Progressions"、次の警告コードとエラー コードが表示され続けます。

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という結論に至りました。>私は通常、この Web サイトを使用してユニコードをすばやく検索し、記号のユニコードを見つけました>: https://www.compart.com/en/unicode/U+003E

ただし、このユニコードは間違ったシンボルに対応しているようです。コードはエラーなしで実行されます (次の警告 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")))

>を正しく表示するための回避策はありますか? 残りのプロットには記号を使用しており、場違いに見えるため、言葉だけを使用したくはありません。KM 適合オブジェクトの reprex が役立つ場合は、提供できます。ありがとう!

4

1 に答える 1