我无法弄清楚如何更改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"))
答案 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为标签工作(虽然你可以看到字体更改影响轴文本,但我没有明确设置它,所以尝试也尝试):
任何真正有用的解决方案都需要一个公关包装,我今晚很想破解它但是暂时无法进入(虽然有一些其他人更有能力比我做PR)。至少你应该提出一个引用它的问题。