更改ggplot2中的字体 [英] Changing fonts in 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)
字体系列,但是有一个教程,我正在关注(如果我可以再次找到它我会更新这里的链接),说这是正常的,不是一个问题。此外,不知何故,这在一个点上工作,因为我的图表曾经使用一些宋体或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屋!