无法识别r wordcloud外部ttf vfont
为了通过ttf_import()方法安装外部字体库,我安装了“extrafont”软件包。但是,通过wordcloud方法指定字体时,我收到以下错误: 安装命令:无法识别r wordcloud外部ttf vfont,r,truetype,word-cloud,R,Truetype,Word Cloud,为了通过ttf_import()方法安装外部字体库,我安装了“extrafont”软件包。但是,通过wordcloud方法指定字体时,我收到以下错误: 安装命令: # Assuming the font file, DUALITY_.ttf, is in the working directory (see link to font above) font_import(".",FALSE,pattern="DUALITY") Wordcloud命令: wordcloud(ap.d$word,
# Assuming the font file, DUALITY_.ttf, is in the working directory (see link to font above)
font_import(".",FALSE,pattern="DUALITY")
Wordcloud命令:
wordcloud(ap.d$word, ap.d$freq, scale=c(8,2), min.freq=10, vfont=c("Duality","plain"),
random.order=FALSE, rot.per=0, use.r.layout=FALSE, colors=pal2, fixed.asp=FALSE)
输出:
Error in strwidth(words[i], cex = size[i], ...) :
invalid 'vfont' value [typeface -2147483648]
为了验证字体是否已安装,我发出了以下命令
> choose_font("Duality")
[1] "Duality"
> fonts()
....[49] "Waree" "Duality"
为什么wordcloud的vfont参数看不到二元字体?以及如何使其对Cairo(默认渲染器)可见。蒂亚 我已经能够使用传递到text
family
和font
并在?par
中描述的参数而不是vfont
来克服相同的问题。我还需要先加载字体。事情是这样的:
导入字体(抱歉,OP中提供的指向二元性的链接不再可用,我改用Lucida手写,在windows中可用):
加载(有关详细信息,请参见此):
Wordcloud:
wordcloud(ap.d$word, ap.d$freq, scale=c(8,2), min.freq=10, family="Lucida Handwriting", font=1,
random.order=FALSE, rot.per=0, use.r.layout=FALSE, colors=pal2, fixed.asp=FALSE)
补充前面的答案,并解释如何实际选择要使用的字体。首先,导入字体(可以在
font\u import()
要了解可用的字体,请执行以下操作:
unique(fonttable()$FamilyName)
这为“字体系列”中包含的内容提供了确切的参考。然后,您可以像下面这样发出wordcloud
命令:
wordcloud(c(letters, LETTERS, 0:9), seq(1, 1000, len = 62), family = "Carlito", font = 1)
为什么font=1
?从?par()
,下面是关于font
参数的说明:
一个整数,指定文本使用的字体。如果可能,
设备驱动程序的排列方式使1对应于纯文本(
默认设置),2为粗体,3为斜体,4为粗体斜体
我很幸运地使用了
windowsFont
将字体加载到R中,然后使用family
参数par
允许基本绘图使用它。该函数是否区分字体名称的大小写?我将尝试使用windowsFont,尽管默认的Cairo安装不支持win-fonts=\您如何知道如何引用字体?LHANDW和“Lucida Handwriting”之间的映射?还有,你在哪里可以看到vfont()的合法值。可以查找吗?@user1603472我所做的是检查我电脑中字体文件的名称。我使用windows,据我所知,字体不是在R中,而是在你的操作系统中。因此我在“字体”中查找我想要使用的字体文件夹中,右键单击“我的字体”的文件,从“常规”选项卡中获取文件的DOS名称,在我的示例中为LHANDW.TTF。关于问题的第二部分。您可以使用计算机上安装的任何字体,要知道哪些字体可用,只需在“字体”目录中列出文件即可。
library(extrafont)
font_import(prompt = FALSE)
unique(fonttable()$FamilyName)
wordcloud(c(letters, LETTERS, 0:9), seq(1, 1000, len = 62), family = "Carlito", font = 1)