R ggplot2::geom_文本字体作为图形的其余部分

R ggplot2::geom_文本字体作为图形的其余部分,r,ggplot2,fonts,geom-text,ggthemes,R,Ggplot2,Fonts,Geom Text,Ggthemes,我使用下面给出的代码得到了以下图表: 我不知道为什么轴标题的字体与图形中的geom_text调用产生的字体不同。如果我运行你的代码,字体是相同的 根据Hadley Wickham的“ggplot2:数据分析的优雅图形”(第二版) 只有3种字体保证在任何地方都能使用:“sans”、“serif”和“mono”(第37页) 如果您使用下面的代码,我想您将有相同的字体轴和几何图形的文字 # solution for text family ### explicitely setting "fami

我使用下面给出的代码得到了以下图表:


我不知道为什么轴标题的字体与图形中的
geom_text
调用产生的字体不同。如果我运行你的代码,字体是相同的

根据Hadley Wickham的“ggplot2:数据分析的优雅图形”(第二版)

只有3种字体保证在任何地方都能使用:“sans”、“serif”和“mono”(第37页)

如果您使用下面的代码,我想您将有相同的字体轴和几何图形的文字

# solution for text family
### explicitely setting "family" twice
p <- ggplot(data = mtcars, mapping = aes(x = wt, y = mpg)) + 
  geom_point() +
  theme_igray(base_family = "sans")                                     ## <----

p + geom_text(mapping = aes(label = rownames(mtcars)), family = "sans") ## <----
#文本族的解决方案
###明确设置“家庭”两次

这对你有用吗?我通过运行
theme\u igray%>%View()
查看主题参数,发现基线
文本的大小和颜色为12磅黑色,但
轴。文本
灰色30
,相对大小为0.8磅,即9.6磅。与全黑字体相比,略浅于黑色的颜色创建的外观与使用较轻字体的外观相似

出于神秘的原因,如前所述,
geom_text
中的文本大小与主题大小的比例接近0.353[编辑,请参见@zeehio的评论;为5:14]。与颜色和大小,这些应该匹配

library(ggplot2)
library(ggthemes)

p <- ggplot(data = mtcars, mapping = aes(x = wt, y = mpg)) + 
  geom_point() +
  theme_igray()
p
p + geom_text(mapping = aes(label = rownames(mtcars)),
              color = "gray30", size = 12 * 5/14 * 0.8)


谢谢@KoenV的回答。我认为字体仍然不同。@MYaseen208我对代码进行了更新:将
family
设置为
sans
两次。我希望这能奏效。请运行代码并让我知道。感谢@KoenV的努力。但是,问题仍然存在。按照建议,在
geom_text()
theme_bw()
中单独设置
family=“serif”
,对我来说很有效。如果问题仍然存在,也许你应该添加更多关于会话的信息
sessionInfo()
。可能不是你想要的,而是调用
windows(family=“serif”)
在ggplot之前,将所有文本设置为
'serif'
,但在单独的窗口中。这可能是平台的问题,我在Windows上运行。感谢@JonSpring给出的漂亮回答和解释。您的代码提供了非常相似的字体,但仍然有一点不同。谢谢。这里描述了字体大小的错误:。不是5/14,而是25.4/72
# solution for text family
### explicitely setting "family" twice
p <- ggplot(data = mtcars, mapping = aes(x = wt, y = mpg)) + 
  geom_point() +
  theme_igray(base_family = "sans")                                     ## <----

p + geom_text(mapping = aes(label = rownames(mtcars)), family = "sans") ## <----
library(ggplot2)
library(ggthemes)

p <- ggplot(data = mtcars, mapping = aes(x = wt, y = mpg)) + 
  geom_point() +
  theme_igray()
p
p + geom_text(mapping = aes(label = rownames(mtcars)),
              color = "gray30", size = 12 * 5/14 * 0.8)
base_size = 36
ggplot(data = mtcars, mapping = aes(x = wt, y = mpg)) + 
  annotate("text", x = 1, y = 5*3:6, label = 5*3:6,
           color = "gray30", size = 12 * 0.353 * 0.8) +
  annotate("text", x = 10, y = 5*3:6, label = 5*3:6,
           color = "gray30", size = 12 * 0.353 * 0.8) +
  theme_igray() +
  theme(panel.grid = element_blank())