有没有办法在geom_net中更改字体系列?

时间:2017-11-08 00:11:27

标签: r

我无法弄清楚如何更改geom_net中节点标签的字体系列。这是一个玩具网络图:

library(geomnet)

net <- data.frame(from = sample(LETTERS, 20, replace=TRUE),
                  to = sample(LETTERS, 20, replace=TRUE),
                  weight = round(runif(20,1,5)))

ggplot(data = net, aes(from_id = from, to_id = to)) +
  geom_net(aes(linewidth = weight), layout.alg = "kamadakawai", 
           labelon = TRUE, ecolour = "grey60",
           directed = FALSE, fontsize = 6, ealpha = 0.5,
           repel = TRUE)

有一个&#34; base_family&#34; theme_net中的参数,但似乎只是更改了图例文本的字体系列(而不是节点标签文本):

+ theme_net(base_family="Times")

我也尝试在主题函数中设置它(我通常在ggplot中设置它),但这也只会更改轴/图例文本(而不是节点标签文本):

+ theme(text=element_text(family="Times"))

1 个答案:

答案 0 :(得分:2)

这是粗略的b / c pkg作者使用gpar()或内部的硬编码位与标签grob(https://github.com/sctyner/geomnet/blob/master/R/geom-net.r)并没有任何设置{{1}的方法(技术上family)。这意味着从图形设备的默认值中选取“家庭”(yay,不一致b / c,这是你如何指定它)。

这两种:

fontfamily

(我有Roboto Condensed加载cairo_pdf("test.pdf", family="Roboto Condensed") ggplot(data = net, aes(from_id = from, to_id = to)) + geom_net(aes(linewidth = weight), layout.alg = "kamadakawai", labelon = TRUE, ecolour = "grey60", labelgeom="text", directed = FALSE, fontsize = 10, ealpha = 0.5, repel = TRUE) dev.off() 的b / c但是我把它包含在那里以显示它获取额外安装的字体。)

hrbrthemes

两者都以标签的正确字体结束。我没有尝试其他面向字体的主题更改,但它def为标签工作(虽然你可以看到字体更改影响轴文本,但我没有明确设置它,所以尝试也尝试):

enter image description here

enter image description here

任何真正有用的解决方案都需要一个公关包装,我今晚很想破解它但是暂时无法进入(虽然有一些其他人更有能力比我做PR)。至少你应该提出一个引用它的问题。