web-dev-qa-db-ja.com

Rのグラフのフォントの変更

私の研究では、Rを使用してさまざまなグラフを生成しています。ほとんどのグラフには、さまざまなサイズのSans Serifタイプのフォントが用意されています。

グラフ内のすべてのテキスト(xラベル、yラベル、タイトル、凡例など)を統一フォントに変更する方法Times New Roman、12pt、太字?

25
Indian

extrafont パッケージを使用できます。

install.packages("extrafont")
library(extrafont)
font_import()
loadfonts(device="win")       #Register fonts for Windows bitmap output
fonts()                       #vector of font family names
##  [1] "Andale Mono"                  "AppleMyungjo"                
##  [3] "Arial Black"                  "Arial"                       
##  [5] "Arial Narrow"                 "Arial Rounded MT Bold"  

library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +     
  ggtitle("Fuel Efficiency of 32 Cars") +
  xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
  theme_bw() +
  theme(text=element_text(family="Times New Roman", face="bold", size=12)) #Times New Roman, 12pt, Bold
#example taken from the Github project page

enter image description here

注:extrafontパッケージを使用すると、これらのフォントをPDFおよびEPSファイルに埋め込むこともできます。 (Rでプロットを作成してPDF/EPSにエクスポートします。また、通常TeXを使用して作成される数学記号(下のプロットの数学方程式を参照)を直接作成することもできます。詳細情報 こちら および heregithubプロジェクトページ .

enter image description here

また、 this の作成について説明する回答をご覧ください xkcdextrafontパッケージを使用したスタイルグラフ。

enter image description here

32
Ujjwal

WindowsのフォントをTimes New Romanに変更するには、windowsFonts()コマンドとfamilyplotオプションを使用します。

_x = seq(1,10,1)
y = 1.5*x
windowsFonts(A = windowsFont("Times New Roman"))
plot(x, y,
  family="A",
  main = "title",
  font=2)
_

太字のテキストは_font=2_からのものです。サイズについては、?cex()を参照してください。また、こちらもご覧ください: http://www.statmethods.net/advgraphs/parameters.html

enter image description here

12
Devon

WindowsFonts(...)を使用したggplotソリューションです

windowsFonts(Times=windowsFont("Times New Roman"))
library(ggplot2)
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
  ggtitle("Fuel Efficiency of 32 Cars") +
  xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
  theme_bw() +
  theme(text=element_text(family="Times", face="bold", size=12)) #Times New Roman, 12pt, Bold

ご覧のとおり、テキストは本当にTimes New Romanです。

主なアイデアは、Rで内部的にフォントに付ける名前は何でも、

windowsFonts(name=windowsFont("system name"))

でフォントを参照するために使用する必要があります

theme(text=element_text(family="name",...),...)
7
jlhoward