Open Sans Semiboldフォントを使用するggplot
プロットを作成し、このプロットをsvg
に変換したいと考えています。最後に、文書にこれを含めてください。最大の問題は、で、ブラウザ上で変換されたggplot
オブジェクトに対してOpen Sans Semiboldを使用することです。ggplotオブジェクトをOpen Sans Semiboldフォントを使用するsvgに変換する
- 私は
svg
にggplot
を変換するsvglite
を使用し、それがうまく動作します。 - 私はOpen Sans Semiboldフォントを軸のタイトルに含めました(私はすべてのOpen Sansファミリーをローカルに保存しました)。
私はdocを作成しました。私はクローム/オペラ/ Mozillaブラウザでこのドキュメントを開くと、オープンなきSemiboldは表示されません
--- title: "" output: html_document --- ```{r setup, include = FALSE} library(svglite) knitr::opts_chunk$set( dev = "svglite", fig.ext = ".svg" ) ``` ```{r, warning = F, message = F, echo = F} library(ggplot2) data(cars) ggplot(mtcars, aes(mpg, qsec, color = factor(cyl))) + geom_point() + theme(text = element_text(family = 'Open Sans'), axis.title = element_text(family = 'Open Sans Semibold')) ```
。代わりにArialがそれを置き換えます。しかしSafariでは完全に動作します。 Open Sans SemiboldとLightが付いているブラウザでは、一般的な問題があることが判明しました(詳細はhere)。半二重バージョンを使用するのではなく、それを解決するために、私はを基本としたCSS font-weight
を使用します。 <p>
を作成すると完全に動作します。それはまだオープンなきSemiboldフォントを使用しているため
---
title: ""
output: html_document
---
<style>
@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700);
.text_basic {
font-family: 'Open Sans', sans-serif;
}
.text_semibold {
font-family: 'Open Sans', sans-serif;
font-weight: 700;
}
</style>
<p class = 'text_basic'>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellat, nisi quasi cupiditate, ratione, consequuntur adipisci reiciendis impedit, laborum tenetur qui neque nobis enim. Sunt
</p>
<p class = 'text_semibold'>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellat, nisi quasi cupiditate, ratione, consequuntur adipisci reiciendis impedit, laborum tenetur qui neque nobis enim. Sunt
</p>
```{r setup, include = FALSE}
library(svglite)
knitr::opts_chunk$set(
dev = "svglite",
fig.ext = ".svg"
)
```
```{r, warning = F, message = F, echo = F}
library(ggplot2)
data(cars)
ggplot(mtcars, aes(mpg, qsec, color = factor(cyl))) +
geom_point() +
theme(text = element_text(family = 'Open Sans'),
axis.title = element_text(family = 'Open Sans Semibold'))
```
しかし、この解決策は、ggplot
オブジェクト上では動作しません。 ggplot
の中にそのようなことがないのでfont-weight
を使用することはできません。代わりにface
引数のみを使用できますが、そのオプションはnumeric
値を受け入れません。
私が当初考えていた回避策の1つは、ggplot
オブジェクトをHTMLコードに変換し、css
を使用して軸のフォントを操作することです。その場合
---
title: ""
output: html_document
---
```{r setup, include = FALSE}
library(svglite)
knitr::opts_chunk$set(
dev = "svglite",
fig.ext = ".svg"
)
```
```{r, warning = F, message = F, echo = F}
library(ggplot2)
data(cars)
s <- svgstring()
ggplot(mtcars, aes(mpg, qsec, color = factor(cyl))) +
geom_point() +
theme(text = element_text(family = 'Open Sans'),
axis.title = element_text(family = 'Open Sans Semibold'))
htmltools::HTML(s())
invisible(
dev.off()
)
```
text
タグを検出し、私がしたいようにそれらを操作することが可能であるが、コードを生成し、ラベルにし、タイトルに関連text
タグをdifferatiateすることは容易ではない、すなわち平坦です。
誰でもこの問題を解決する考えがありますか?
この最後の文章をお読みいただきありがとうございます。私は問題をできるだけ短く要約しようとしました。この問題を回避するための