R语言 在ggplot中更改特定符号的字体

q5lcpyga  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(81)

我打算在ggplot中使用一种特定的字体,因为我只能找到.otf格式的字体,所以我可以用showtext包来实现。
然而,我意识到新字体不包括欧元符号(€)。因此,当我在ggplot中更改字体时,我得到的是一个空格而不是符号。

library(tidyverse)

library(showtext)
font_add("Gulliver", ".../Windows/Fonts/Gulliver Regular.otf")
showtext_auto()

mtcars %>% 
  ggplot() +
  geom_point(aes(x = disp, y = mpg)) +
  theme(text = element_text(family = "Gulliver")) +
  labs(y = bquote("mpg - (€ & " ~m^2 ~")"),
       x = "€€€")

字符串
下面的代码是一个导致空格(左),如果我删除theme(text = element_text(family = "Gulliver")) +行,虽然,所有欧元符号出现没有问题(右)。

我正在考虑以某种方式改变字体只使用在€符号的默认之一,并有我选择的字体中的所有其他文本.有没有一种方法来实现它或更容易的路径来解决这个问题?

iyr7buue

iyr7buue1#

也许有一个更简单的选择来获得你正在使用的字体的欧元符号,但是如果你想使用不同的字体家族,那么你可以使用ggtext来实现你想要的结果,它允许使用有限数量的HTML和CSS来设置文本的样式,并且足以添加一个上标。为此,我们必须使用ggtext::element_markdown而不是element_text
在reprex中,我将text元素的字体家族设置为times,但对欧元符号使用sans

library(ggplot2)
library(ggtext)

mtcars |>
  ggplot() +
  geom_point(aes(x = disp, y = mpg)) +
  theme(text = element_text(
    family = "times"
  ),
  axis.title.y = element_markdown()
  ) +
  labs(
    y = "mpg - (<span style='font-family: sans'>€</span> & m<sup>2</sup>)",
    x = "€€€"
  )

字符串


的数据

相关问题