R ggplot图例标签内的希腊字母、符号和换行符

R ggplot图例标签内的希腊字母、符号和换行符,r,ggplot2,R,Ggplot2,我正在努力 有断线(自动或强制) 对齐文本(左对齐或左右对齐) 有希腊字母和百分号 在格洛特图例标签内 我尝试过几种方法,但我似乎无法将我读到的所有技巧结合起来 我可以通过在标签中插入\n来获得换行符,但这似乎不适用于希腊字母,而不适用于图例标签。或者我可以通过组合mtext()和bquote()在底图中插入一段文本(EDIT)在底图中使用换行符和希腊字母,但正如Gregor在评论部分指出的,这不适用于ggplot。下面,我将列表与paste0()组合起来,将文本传递给图例标签:问题是我找不到插

我正在努力

  • 有断线(自动或强制)
  • 对齐文本(左对齐或左右对齐)
  • 有希腊字母和百分号
  • 在格洛特图例标签内

    我尝试过几种方法,但我似乎无法将我读到的所有技巧结合起来

    我可以通过在标签中插入
    \n
    来获得换行符,但这似乎不适用于希腊字母,而不适用于图例标签。或者我可以通过组合
    mtext()
    bquote()
    在底图中插入一段文本(EDIT)在底图中使用换行符和希腊字母,但正如Gregor在评论部分指出的,这不适用于
    ggplot
    。下面,我将
    列表
    paste0()
    组合起来,将文本传递给图例标签:问题是我找不到插入希腊字母的方法,例如gamma

    谢谢你的建议

    以下是我的一次尝试(编辑:改进的MWE)的MWE:


    label1.line1Baptiste的建议恰到好处:unicode走了很长的路。将上面的每个gamma实例替换为
    \u03B3
    ,它将显示为希腊语。太棒了

    可以使用
    cairo
    设备()进行打印:

    同样有效:
    ggsave(“希腊文.pdf”,device=cairo\u pdf)

    以下是我发现有用的unicode符号选择:

    "\U016B" = ū
    "\U016A" = Ū
    "\U00FB" = û
    "\U00DB" = Û
    "\U0233" = ȳ
    "\U0232" = Ȳ
    "\U0177" = ŷ
    "\U0176" = Ŷ
    "\U0113" = ē
    "\U0112" = Ē
    "\u00EA" = ê
    "\U00CA" = Ê
    "\U003BC\U2080" = μ₀
    "\U003BC\U2081" = μ₁
    "R\U00B2" = R²
    "\u221E" = ∞
    "\u2248" = ≈
    "\U2260" = ≠ 
    "\u03C3/\u221An" = σ/√n
    
    遗憾的是,并非所有特殊字符都具有unicode等价物。例如,y-hat有unicode编码,但x-hat没有。可以将字母x与unicode条组合,如
    “x\u0305”=x̅
    “p\u0302”=p̂
    ,但这似乎打印得不太好

    我也很难将希腊文unicode打印为轴标签,因此在这些情况下,我使用带有选项
    coord_cartesian(clip=“off”)
    annotate()
    来确保打印在轴下方的标签不会被剪裁(“打开”是默认剪裁行为)

    有时您可以直接使用该字符,例如:

    myplot + labs(title  = "±")
    
    当unicode失败时,您可以尝试
    expression()
    ,例如

    title = expression(paste("z = (", bar(x), "-\u03BC)/(\u03C3/\u221An)", sep = ""))  
    library(ggplot2)
    ggplot() + labs(title = title) + theme_bw() 
    

    为了方便起见,我在下面复制了一些常用的希腊字母的Unicode。可能会发现更多的unicodes,例如

    有关与unicode一起使用的字体的信息:

    一些货币符号:

    # http://www.fileformat.info/info/unicode/category/Sc/list.htm
    Character   Name    Browser     Image
    \u0024  DOLLAR SIGN     $
    \u00A2  CENT SIGN   ¢
    \u00A3  POUND SIGN  £
    \u00A4  CURRENCY SIGN   ¤
    \u00A5  YEN SIGN    ¥
    \u058F  ARMENIAN DRAM SIGN
    \u060B  AFGHANI SIGN    ؋
    \u09F2  BENGALI RUPEE MARK  ৲
    \u09F3  BENGALI RUPEE SIGN  ৳
    \u09FB  BENGALI GANDA MARK
    \u0AF1  GUJARATI RUPEE SIGN     ૱
    \u0BF9  TAMIL RUPEE SIGN    ௹
    \u0E3F  THAI CURRENCY SYMBOL BAHT   ฿
    \u17DB  KHMER CURRENCY SYMBOL RIEL  ៛
    \u20A0  EURO-CURRENCY SIGN  ₠
    \u20A1  COLON SIGN  ₡
    \u20A2  CRUZEIRO SIGN   ₢
    \u20A3  FRENCH FRANC SIGN   ₣
    \u20A4  LIRA SIGN   ₤
    \u20A5  MILL SIGN   ₥
    \u20A6  NAIRA SIGN  ₦
    \u20A7  PESETA SIGN     ₧
    \u20A8  RUPEE SIGN  ₨
    \u20A9  WON SIGN    ₩
    \u20AA  NEW SHEQEL SIGN     ₪
    \u20AB  DONG SIGN   ₫
    \u20AC  EURO SIGN   €
    \u20AD  KIP SIGN    ₭
    \u20AE  TUGRIK SIGN     ₮
    \u20AF  DRACHMA SIGN    ₯
    \u20B0  GERMAN PENNY SIGN   ₰
    \u20B1  PESO SIGN   ₱
    \u20B2  GUARANI SIGN    ₲
    \u20B3  AUSTRAL SIGN    ₳
    \u20B4  HRYVNIA SIGN    ₴
    \u20B5  CEDI SIGN   ₵
    \u20B6  LIVRE TOURNOIS SIGN     ₶
    \u20B7  SPESMILO SIGN   ₷
    \u20B8  TENGE SIGN  ₸
    \u20B9  INDIAN RUPEE SIGN   ₹
    \u20BA  TURKISH LIRA SIGN   ₺
    \u20BB  NORDIC MARK SIGN    ₻
    \u20BC  MANAT SIGN  ₼
    \u20BD  RUBLE SIGN  ₽
    \uA838  NORTH INDIC RUPEE MARK
    \uFDFC  RIAL SIGN   ﷼
    \uFE69  SMALL DOLLAR SIGN   ﹩
    \uFF04  FULLWIDTH DOLLAR SIGN   $
    \uFFE0  FULLWIDTH CENT SIGN     ¢
    \uFFE1  FULLWIDTH POUND SIGN    £
    \uFFE5  FULLWIDTH YEN SIGN  ¥
    \uFFE6  FULLWIDTH WON SIGN  
    

    基本图形函数(如
    mtext
    )与网格图形(如ggplots)不兼容。要获取希腊字母和“\n”,您可能需要使用Unicode字符(可能与cairo设备一起),或者使用TikzDeviceTanks baptiste!我已经用你的暗示回答了我自己的问题。请随意添加建议,我当然会接受您的答案。
    family=“mono”
    (在主题中的
    element\u文本中)无法很好地使用unicode。这是一个有效的
    title=element\u文本(family=“DejaVu Sans mono”)
    绝妙的答案!对于其他符号(我自己也在寻找丹麦克朗),有一个列表。只是别忘了
    \u
    等@RobertMc,谢谢&很抱歉丹麦克朗没有包括在我的名单中。请随意添加它!:-)<代码>\u2248=≈。另请参见130页您不知道需要的unicode符号:列表如下:
    ℕ = “\u2115”
    ℤ = “\u2124”
    ℚ = “\u211a”
    ℝ = “\u211d”
    ℂ = “\u2102”
    ≤ = “\u2264”
    ≥ = “\u2265”
    ∈ = “\u2208”
    ∉ = “\u2209”
    ∅ = “\u2205”
    ∞ = “\u21e”
    对于y轴标签中的ggplot,这对我来说很有用:ylab(粘贴(“平均韧皮环距离(“,”\U003bc”,“m)”),以微米为单位。
    title = expression(paste("z = (", bar(x), "-\u03BC)/(\u03C3/\u221An)", sep = ""))  
    library(ggplot2)
    ggplot() + labs(title = title) + theme_bw() 
    
    \u0391  Α   Greek Capital Letter Alpha
    \u0392  Β   Greek Capital Letter Beta
    \u0393  Γ   Greek Capital Letter Gamma
    \u0394  Δ   Greek Capital Letter Delta
    \u0395  Ε   Greek Capital Letter Epsilon
    \u0396  Ζ   Greek Capital Letter Zeta
    \u0397  Η   Greek Capital Letter Eta
    \u0398  Θ   Greek Capital Letter Theta
    \u0399  Ι   Greek Capital Letter Iota
    \u039A  Κ   Greek Capital Letter Kappa
    \u039B  Λ   Greek Capital Letter Lambda
    \u039C  Μ   Greek Capital Letter Mu
    \u039D  Ν   Greek Capital Letter Nu
    \u039E  Ξ   Greek Capital Letter Xi
    \u039F  Ο   Greek Capital Letter Omicron
    \u03A0  Π   Greek Capital Letter Pi
    \u03A1  Ρ   Greek Capital Letter Rho
    \u03A3  Σ   Greek Capital Letter Sigma
    \u03A4  Τ   Greek Capital Letter Tau
    \u03A5  Υ   Greek Capital Letter Upsilon
    \u03A6  Φ   Greek Capital Letter Phi
    \u03A7  Χ   Greek Capital Letter Chi
    \u03A8  Ψ   Greek Capital Letter Psi
    \u03A9  Ω   Greek Capital Letter Omega
    \u03B1  α   Greek Small Letter alpha
    \u03B2  β   Greek Small Letter beta
    \u03B3  γ   Greek Small Letter gamma
    \u03B4  δ   Greek Small Letter delta
    \u03B5  ε   Greek Small Letter epsilon
    \u03B6  ζ   Greek Small Letter zeta
    \u03B7  η   Greek Small Letter eta
    \u03B8  θ   Greek Small Letter theta
    \u03B9  ι   Greek Small Letter iota
    \u03BA  κ   Greek Small Letter kappa
    \u03BB  λ   Greek Small Letter lambda
    \u03BC  μ   Greek Small Letter mu
    \u03BD  ν   Greek Small Letter nu
    \u03BE  ξ   Greek Small Letter xi
    \u03BF  ο   Greek Small Letter omicron
    \u03C0  π   Greek Small Letter pi
    \u03C1  ρ   Greek Small Letter rho
    \u03C2  ς   Greek Small Letter final sigma
    \u03C3  σ   Greek Small Letter sigma
    \u03C4  τ   Greek Small Letter tau
    \u03C5  υ   Greek Small Letter upsilon
    \u03C6  φ   Greek Small Letter phi
    \u03C7  χ   Greek Small Letter chi
    \u03C8  ψ   Greek Small Letter psi
    \u03C9  ω   Greek Small Letter omega
    
    # http://www.fileformat.info/info/unicode/category/Sc/list.htm
    Character   Name    Browser     Image
    \u0024  DOLLAR SIGN     $
    \u00A2  CENT SIGN   ¢
    \u00A3  POUND SIGN  £
    \u00A4  CURRENCY SIGN   ¤
    \u00A5  YEN SIGN    ¥
    \u058F  ARMENIAN DRAM SIGN
    \u060B  AFGHANI SIGN    ؋
    \u09F2  BENGALI RUPEE MARK  ৲
    \u09F3  BENGALI RUPEE SIGN  ৳
    \u09FB  BENGALI GANDA MARK
    \u0AF1  GUJARATI RUPEE SIGN     ૱
    \u0BF9  TAMIL RUPEE SIGN    ௹
    \u0E3F  THAI CURRENCY SYMBOL BAHT   ฿
    \u17DB  KHMER CURRENCY SYMBOL RIEL  ៛
    \u20A0  EURO-CURRENCY SIGN  ₠
    \u20A1  COLON SIGN  ₡
    \u20A2  CRUZEIRO SIGN   ₢
    \u20A3  FRENCH FRANC SIGN   ₣
    \u20A4  LIRA SIGN   ₤
    \u20A5  MILL SIGN   ₥
    \u20A6  NAIRA SIGN  ₦
    \u20A7  PESETA SIGN     ₧
    \u20A8  RUPEE SIGN  ₨
    \u20A9  WON SIGN    ₩
    \u20AA  NEW SHEQEL SIGN     ₪
    \u20AB  DONG SIGN   ₫
    \u20AC  EURO SIGN   €
    \u20AD  KIP SIGN    ₭
    \u20AE  TUGRIK SIGN     ₮
    \u20AF  DRACHMA SIGN    ₯
    \u20B0  GERMAN PENNY SIGN   ₰
    \u20B1  PESO SIGN   ₱
    \u20B2  GUARANI SIGN    ₲
    \u20B3  AUSTRAL SIGN    ₳
    \u20B4  HRYVNIA SIGN    ₴
    \u20B5  CEDI SIGN   ₵
    \u20B6  LIVRE TOURNOIS SIGN     ₶
    \u20B7  SPESMILO SIGN   ₷
    \u20B8  TENGE SIGN  ₸
    \u20B9  INDIAN RUPEE SIGN   ₹
    \u20BA  TURKISH LIRA SIGN   ₺
    \u20BB  NORDIC MARK SIGN    ₻
    \u20BC  MANAT SIGN  ₼
    \u20BD  RUBLE SIGN  ₽
    \uA838  NORTH INDIC RUPEE MARK
    \uFDFC  RIAL SIGN   ﷼
    \uFE69  SMALL DOLLAR SIGN   ﹩
    \uFF04  FULLWIDTH DOLLAR SIGN   $
    \uFFE0  FULLWIDTH CENT SIGN     ¢
    \uFFE1  FULLWIDTH POUND SIGN    £
    \uFFE5  FULLWIDTH YEN SIGN  ¥
    \uFFE6  FULLWIDTH WON SIGN