更改ggplot2中的字体 [英] Changing fonts in ggplot2

查看:3205
本文介绍了更改ggplot2中的字体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

曾几何时,我使用 windowsFonts(Times = windowsFont(TT Times New Roman))更改了我的 ggplot2 code>来改变它。现在我无法解决这个问题。



family =中设置 ggplot2 theme()我似乎无法生成字体更改,因为我使用不同的字体系列编译MWE。

  library(ggplot2)
library(extrafont)
loadfonts(device =win)
$ b $ ggplot(mtcars,aes(x = wt,y = mpg))+ geom_point()+
ggtitle(32辆汽车的燃油效率)+
xlab Weight(x1000 lb))+ ylab(Miles per Gallon)+
theme(text = element_text(size = 16,
#family =Comic Sans MS))

$ family $
#family =TT Times New Roman))
#family =Sans))$ b $ family =Serif))


print(a)
print(Graph should be refreshed)



R正在返回一个在Windows字体数据库
中找不到的警告字体系列,但是有一个教程,我正在关注(如果我可以再次找到它我会更新这里的链接),说这是正常的,不是一个问题。此外,不知何故,这在一个点上工作,因为我的图表曾经使用一些宋体或helvitica字体。我认为,即使在最初的迁移期间,这一直是个警告。



更新



windowsFonts()我的输出是


$ serif [1]TT Times New罗马



$ sans [1]TT Arial

$ mono [1]


但是,这是我运行 font_import()所以我可以只能得出结论,我的字体没有被保存在正确的地方。运行 font_import()请求的代码实际上会加载这些库:

  LocalLibraryLocation<  -  paste0(C:\\ Users \\,Sys.getenv(USERNAME),\\Documents,\\R\\win -library\\3.2\" ); 
.libPaths(c(LocalLibraryLocation,.libPaths()))


解决方案您可以使用命令 windowsFonts()来查看您可以使用的字体。

。例如,我看起来像这样:

 > TT宋体

$ s

$ mono
[1]TT Courier New

安装包extraFont后运行 font_import 像这样(花了5分钟):

  library (extrafont)
font_import()
loadfonts(device =win)

我有更多的可用 - 可争论的太多,肯定太多,列出在这里。

然后我试着你的代码:

  library(ggplot2)
library(extrafont)
loadfonts(device =win)
$ ba < - ggplot (x = wt,y = mpg))+ geom_point()+
ggtitle(32辆汽车的燃油效率)+
xlab(Weight(x1000 lb))+ ylab 每加仑里程数)+
主题(text = element_text(size = 16,family =Comic Sans MS))
print(a)

产生这个:
$ b



更新:



您可以找到系列所需的字体名称

 >的参数 element_text 名称(wf [wf ==TT Times New Roman])
[1]serif

然后:

  library(ggplot2)
library(extrafont)
loadfonts(device =win)

a < - ggplot(mtcars,aes(x = wt,y = mpg))+ geom_point()+
ggtitle +
xlab(Weight(x1000 lb))+ ylab(Miles per Gallon)+
theme(text = element_text(size = 16,family =serif))
打印(a)

产生:

Once upon a time, I changed my ggplot2 font using using windowsFonts(Times=windowsFont("TT Times New Roman")) to change it. Now I can't get it off of this.

In trying to set family="" in ggplot2 theme() I can't seem to generate a change in fonts as I compile the MWE below with different font families.

library(ggplot2)
library(extrafont)
loadfonts(device = "win")

a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
        ggtitle("Fuel Efficiency of 32 Cars") +
        xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
        theme(text=element_text(size=16, 
#       family="Comic Sans MS"))
#       family="CM Roman"))
#       family="TT Times New Roman"))
#       family="Sans"))
        family="Serif"))


print(a)
print("Graph should have refreshed")

R is returning a warning font family not found in Windows font database, but there was a tutorial I was following (if I can find it again I will update the link here) that said this was normal and not a problem. Also, somehow this worked at one point because my graph once used some arial or helvitica type font. I think this has always been a present warning even during the initial times migration.

UPDATE

when I run windowsFonts() my output is

$serif [1] "TT Times New Roman"

$sans [1] "TT Arial"

$mono [1] "TT Courier New"

But, this is after I ran font_import() so I can only conclude that my fonts are not being saved in the right place. The code that ran the font_import() request actually loads the libraries with:

LocalLibraryLocation <- paste0("C:\\Users\\",Sys.getenv("USERNAME"),"\\Documents","\\R\\win-library\\3.2");
    .libPaths(c(LocalLibraryLocation, .libPaths()))

解决方案

You just missed an initialization step I think.

You can see what fonts you have available with the command windowsFonts(). For example mine looks like this when I started looking at this:

> windowsFonts()
$serif
[1] "TT Times New Roman"

$sans
[1] "TT Arial"

$mono
[1] "TT Courier New"

After intalling the package extraFont and running font_import like this (it took like 5 minutes):

library(extrafont)
font_import()
loadfonts(device = "win")

I had many more available - arguable too many, certainly too many to list here.

Then I tried your code:

library(ggplot2)
library(extrafont)
loadfonts(device = "win")

a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
  ggtitle("Fuel Efficiency of 32 Cars") +
  xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
  theme(text=element_text(size=16,  family="Comic Sans MS"))
print(a)

yielding this:

Update:

You can find the name of a font you need for the family parameter of element_text with the following code snippet:

> names(wf[wf=="TT Times New Roman"])
[1] "serif"

And then:

library(ggplot2)
library(extrafont)
loadfonts(device = "win")

a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
  ggtitle("Fuel Efficiency of 32 Cars") +
  xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
  theme(text=element_text(size=16,  family="serif"))
print(a)

yields:

这篇关于更改ggplot2中的字体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆