字体未在showtext中加载font_add_google

时间:2018-11-09 04:42:28

标签: r ggplot2 showtext

我正在尝试绘制一些数据,而我的代码如下所示:

library('ggplot2')
library('tidyr')
library('ggthemes')
library('showtext')

font_add_google('Syncopate', 'Syncopate')
showtext_auto()

ggplot(aes(x = X, group=1), data = glassdoor)+
  geom_line(aes(y = col1, color = 'red'))+
  geom_line(aes(y = col2, color = 'blue'))+
  geom_line(aes(y = col3, color = 'magenta'))+
  geom_line(aes(y = col4, color = 'yellow'))+
  theme(text = element_text(family = "Syncopate"))+
  ggtitle('A Long Test Title')

Syncopate是一种独特的字体,见here。但是我的可视化字体看起来像这样(这是一个测试图,请忽略其整体效果):

enter image description here

但是,如果我加载诸如Times New Roman之类的系统主题,则效果很好。为什么我的Google字体不使用showtext加载?

修改

Jrakru的答案有效,但请记住,您必须运行整个代码块:新字体将显示在已保存的png文件中,而不显示在预览窗口中。这并不是为了解决问题而写的,而是针对像我这样的人,他们希望字体显示在RStudio控制台中,因此省略了代码的ggsavepng部分。 / p>

2 个答案:

答案 0 :(得分:2)

var ids = jQuery("#listInbox").jqGrid('getDataIDs'); for(var i=0;i < ids.length;i++){ var acnid = ids[i]; // insert drop down for the trending results option var trendSelect = "<select style=\"width: 195px;\" class=\"trendSelect\"><option value=''>Select Test</option>"; // testid`testname^testid`testname var trendItems = $('#listInbox').jqGrid('getCell',ids[i],'trending').split('^'); var patName = $('#listInbox').jqGrid('getCell',ids[i],'patname'); // for each trendItem, create an option for the select drop down for (var t=0; t < trendItems.length; t++) { var trendPieces = trendItems[t].split('`'); trendSelect += "<option value='" + acnid + "^" + patName + "^" + trendPieces[0] + "^" + trendPieces[1] + "'>" + trendPieces[1] + "</option>"; } trendSelect += "</select>"; // insert dropdown in cell for this row $("#listInbox").jqGrid('setRowData',ids[i],{trending:trendSelect}); } } 的GitHub提到

  

此示例应可在大多数图形设备上使用,包括pdf(),   png(),postscript()和屏幕上的设备,例如Windows()   Windows和Linux上的x11()。

如果您在两行之间非常认真地阅读,则表示不支持showtext图形设备。最初的几次我没有看到。我只知道,因为RStudioGD更为明确。

  

注意:当前showtext不适用于内置图形   RStudio的设备,因此尝试以下代码,建议运行   原始R控制台中的代码,或使用其他图形设备(例如   x11()和windows()

请参阅 https://cran.rstudio.com/web/packages/showtext/vignettes/introduction.html

有了以上知识,我们可以做到:

vignette

瞧! enter image description here

Ps:我假设您是library('tidyr') library('ggthemes') library('showtext') font_add_google("Schoolbell", "bell") showtext_auto() library('ggplot2') df<- data.frame(x=1:10, y=101:110) options("device" = "windows") win.graph(10,10,12) ggplot(data = df) + geom_line(aes(x,y))+ theme(text = element_text(family = "bell"))+ ggtitle('A Long Test Title') ggsave("showtext-example.png", width = 7, height = 4, dpi = 96) options("device" = "RStudioGD") 用户。

答案 1 :(得分:1)

根据同一文档:https://cran.rstudio.com/web/packages/showtext/vignettes/introduction.html

它的最底层,您可以阅读以下内容:

与RStudio的兼容性

从0.9版开始,showtext可以很好地与RStudio配合使用 图形设备(RStudioGD)。只需在窗口中调用showtext_auto() RStudio会话,然后绘图将正确显示。

它在RStudio 1.3.959中为我工作