如何为绘图文本元素和其他注释统一定义文本样式(大小和族)? 以下MWE library(ggplot2) data1.df - data.frame(Plant = c("Plant1", "Plant1", "Plant1", "Plant2", "Plant2", "Plant2"), Type = c(1, 2, 3, 1, 2, 3), Axis1 =
以下MWE
library(ggplot2) data1.df <- data.frame(Plant = c("Plant1", "Plant1", "Plant1", "Plant2", "Plant2", "Plant2"), Type = c(1, 2, 3, 1, 2, 3), Axis1 = c(0.2, -0.4, 0.8, -0.2, -0.7, 0.1), Axis2 = c(0.5, 0.3, -0.1, -0.3, -0.1, -0.8)) theme_set(theme_bw() + theme(text=element_text(family="Palatino", size=10))) ggplot(data1.df, aes(x = Axis1, y = Axis2, shape = Plant, color = Type)) + geom_point(size = 5) + annotate("text", x=0.4, y=0.0, label="Label", fontface="italic") + theme(legend.position="none")
产生
“Label”与主题element_text()定义不一致.
如果加载了ggplot2,那么这应该为您提供当前有效的属性(如果它们不同于默认值):theme(text = element_text())$text[ c("family", "size") ]
?annotate告诉我们……“与典型的geom函数不同,geoms的属性不是从数据框的变量映射,而是作为向量来映射.”我假设这意味着annotate不会在theme()中查找其字体信息,尽管该句子没有特别涵盖.还有一个后来的评论让我觉得这可能是设计的:“……但所有其他美学都已设定.这意味着用这个功能创建的图层永远不会影响图例.”
注释中的注释:“这些注释没有缩放,所以你可以做(例如)color =”red“来获得红点.”我认为轴的默认值在大小上有一个特定的比例,但是没有设法找到帮助文件中的细节.这似乎为注释提供了与轴标题相似的大小:
ggplot(data1.df, aes(x = Axis1, y = Axis2, shape = Plant, color = Type)) + geom_point(size = 5) + annotate("text", x=0.4, y=0.0, label="Label", family= theme_get()$text[["family"]], size= theme_get()$text[["size"]]/2.5, fontface="italic") + theme(legend.position="none")
如果你有兴趣追求“为什么”使用2.5问题你可以看看?rel和使用主题的例子(axis.title.x = element_text(size = rel(2.5))).