Plots.jlのイシューに[BUG] GR backend does not support emoji in legendとあった。
でも「これってバグか?絵文字が含まれるフォントで表示すればいいだけじゃん。」と思ったので試してみた。
ところがubuntuにインストールされているNoto Color Emojiではうまくいかない。 これは普通の文字のところのグリフがなく,少し特殊なフォントっぽい。
ということで色々探してみたところ,「Symbola」というフォントがあるようだ。 ubuntuなら
$ sudo apt install ttf-ancient-fonts-symbola
でインストールできる。
でフォント名を調べて次のようなスクリプトを作成。
using Plots gr() plot(sin; label="🐇(x)", legendfontfamily="Symbola_hint", legendfontsize=14) savefig("emoji.png")
結果は次の通り。
もう一度言おう。これってバグか?
確かに単一フォントファイルでしか表示できないのは不便ではあるが,仕方ない面もあるので 回避策を見つけもせずバグバグっていうのもなぁ…
なお,ソースリストや他のバックエンドで絵文字が表示できるのは指定したフォントにグリフが無かったら 別の表示可能なフォントのグリフをパクって表示する仕組みのライブラリが結果的に 使われているというのが本当のところだと思う。
追記
WindowsでもSymbola
フォントをインストールすれば表示できそう。どこが正式版なのか分からんけど
fontlibrary.orgのSymbolaのところからダウンロードできるのでいいのかも。