ggplot2的默认字体是什么

h.l*_*l.m 29 fonts r ggplot2

在R中使用ggplot2时,它显然有一个base_family字体.它是什么?因为文档只使用"",如...

?theme_light()
Run Code Online (Sandbox Code Playgroud)

它看起来像ArialMT但不确定......

Mik*_*ise 29

这不是一个完整的答案,但有些内容如下:

  • 主题很复杂:http: //ggplot2.tidyverse.org/reference/theme.html
  • theme_set()theme_get()可以设置和查询会话的默认主题
  • 主题是一个列表,命名text列表及其family元素将告诉您正在使用的字体名称.您可以在ggplot中的主题调用中设置它以覆盖该主题的默认值.
  • 在Windows中,windowsFonts()它将告诉您字体名称与已安装的系统字体名称之间的映射.我不知道如何在OS X或Linux平台上执行此操作.
  • 默认的似乎是serif,sansmono所有平台.

我的主要开放性问题是空白姓氏""映射到什么,因为这通常是主题中的内容.如果没有指定任何内容,默认设置将被设置为sans,因为它似乎是它.

我也无法弄清楚如何替换默认字体系列theme_gray().认为是时候提问了......

> theme_get()$text
List of 10
 $ family    : chr ""
 $ face      : chr "plain"
 $ colour    : chr "black"
 $ size      : num 11
 $ hjust     : num 0.5
 $ vjust     : num 0.5
 $ angle     : num 0
 $ lineheight: num 0.9
 $ margin    :Classes 'margin', 'unit'  atomic [1:4] 0 0 0 0
  .. ..- attr(*, "unit")= chr "pt"
  .. ..- attr(*, "valid.unit")= int 8
 $ debug     : logi FALSE
 - attr(*, "class")= chr [1:2] "element_text" "element"
Run Code Online (Sandbox Code Playgroud)

和Windows中的系统字体映射:

> windowsFonts()
$serif
[1] "TT Times New Roman"

$sans
[1] "TT Arial"

$mono
[1] "TT Courier New"

> 
Run Code Online (Sandbox Code Playgroud)

一个例子:

library(ggplot2)
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
  ggtitle("Fuel Efficiency of 32 Cars") +
  xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
  theme(text=element_text(size=16,  family="serif"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 相当于Linux中的`windowsFonts()`是`X11Fonts()`. (5认同)
  • 我想你可以改变这样的默认字体:`theme_set(theme_get()+ theme(text = element_text(family ='Open Sans')))` (3认同)

小智 8

如果导出使用ggplot2创建的图形(使用RStudio:导出 - >复制到剪贴板)并将其加载到图形编辑器中,则可以选择和编辑图形的每个方面,包括文本.

使用Inkscape,我所有ggplot2图的默认字体是Arial.

  • 另一种选择是将“ggsave”保存为“svg”,然后在文本编辑器中加载。搜索 `<text` 元素的 `font-family` 值 (3认同)
  • 我认为它实际上是“sans”,在许多系统上默认为 Arial,但这实际上取决于操作系统和设置,在 Linux 上,ggplot 将从 fontconfig 中检索默认的 sans (这将返回 Bitstream Vera Sans 或 Deja Vu Sans)在典型的 Linux 系统上)。 (2认同)