フォントしたい(gStyle->SetTextFont / SetTitleFont / SetLabelFont など)

 1#include <TStyle.h>
 2
 3// グラフのテキストフォント
 4gStyle->SetTextFont(62);
 5
 6// グラフタイトルのフォント
 7gStyle->SetTitleFont(62, "xyz");
 8
 9// 軸ラベルのフォント
10gStyle->SetLabelFont(62, "xyz");
11
12// 凡例のフォント
13gStyle->SetLegendFont(62);
14
15// 統計情報のフォント
16gStyle->SetStatFont(62);

SetXXXFontメソッドで、グラフやヒストグラムのさまざまな要素のフォントを変更できます。

 1from ROOT import gStyle
 2
 3# グラフのテキストフォント
 4gStyle.SetTextFont(62)
 5
 6# グラフタイトルのフォント
 7gStyle.SetTitleFont(62, "xyz")
 8
 9# 軸ラベルのフォント
10gStyle.SetLabelFont(62, "xyz")
11
12# 凡例のフォント
13gStyle.SetLegendFont(62)
14
15# 統計情報のフォント
16gStyle.SetStatFont(62)

警告

CJK(中日韓)フォント非対応

ROOTは日本語、中国語、韓国語などのCJKフォントに対応していません。SetXXXFontで指定できるのは欧文フォント(Helvetica、Times New Roman、Courier Newなど)のみです。

グラフのタイトルや軸ラベルに日本語を使用する場合は、以下の対策が必要です。

  • グラフのテキストに英語を使用し、図説は別途ドキュメントで日本語表記する

  • PDFに出力後、ImageMagickやInkscapeなどで日本語テキストを追加

  • Pythonパッケージの使用を検討(日本語フォント対応)

フォントコードを理解したい

ROOTのフォントは、フォントIDと精度(Precision)の組み合わせで指定されます。

フォントコードの計算

フォントコード = 10 × フォントID + 精度

計算例

  • フォントID=6、精度=2 → 10 × 6 + 2 = 62

  • フォントID=1、精度=2 → 10 × 1 + 2 = 12

  • フォントID=2、精度=1 → 10 × 2 + 1 = 21

フォント ID の種類

ID

X11フォント名

TrueType

イタリック

太さ

1

times-medium-i-normal

Times New Roman

Yes

4

2

times-bold-r-normal

Times New Roman

No

7

3

times-bold-i-normal

Times New Roman

Yes

7

4

helvetica-medium-r-normal

Arial

No

4

5

helvetica-medium-o-normal

Arial

Yes

4

6

helvetica-bold-r-normal

Arial

No

7

7

helvetica-bold-o-normal

Arial

Yes

7

8

courier-medium-r-normal

Courier New

No

4

9

courier-medium-o-normal

Courier New

Yes

4

10

courier-bold-r-normal

Courier New

No

7

11

courier-bold-o-normal

Courier New

Yes

7

12

symbol-medium-r-normal

Symbol

No

6

13

times-medium-r-normal

Times New Roman

No

4

14

(カスタム)

Wingdings

No

4

精度(Precision)の種類

精度値

説明

用途

0

PDFの不精確なビットマップフォント

古いシステム向け

1

ベクトルフォント(PostScript)

高品質印刷

2

TrueTypeフォント(デフォルト)

汎用・標準

異なるフォント設定を使いたい

ヘルベチカ系(Arial相当)を使用

1#include <TStyle.h>
2
3// ID=6(Helvetica Bold)、精度=2(TrueType)
4gStyle->SetTextFont(62);
5gStyle->SetTitleFont(62, "xyz");
6gStyle->SetLabelFont(62, "xyz");
7gStyle->SetLegendFont(62);
8gStyle->SetStatFont(62);

一般的で読みやすいフォントです。プレゼンテーションや論文に推奨されます。

タイムズ系(Times New Roman相当)を使用

1#include <TStyle.h>
2
3// ID=13(Times Medium)、精度=2(TrueType)
4gStyle->SetTextFont(132);
5gStyle->SetTitleFont(132, "xyz");
6gStyle->SetLabelFont(132, "xyz");
7gStyle->SetLegendFont(132);
8gStyle->SetStatFont(132);

格調高く見えるフォントです。学位論文や学術論文に適しています。

クーリエ系(Courier New相当)を使用

1#include <TStyle.h>
2
3// ID=8(Courier Medium)、精度=2(TrueType)
4gStyle->SetTextFont(82);
5gStyle->SetTitleFont(82, "xyz");
6gStyle->SetLabelFont(82, "xyz");
7gStyle->SetLegendFont(82);
8gStyle->SetStatFont(82);

等幅フォントで、コードやプログラム出力の表示に適しています。

太いヘルベチカ(強調用)

1#include <TStyle.h>
2
3// ID=6(Helvetica Bold)、精度=1(PostScript)
4gStyle->SetTextFont(61);
5gStyle->SetTitleFont(61, "xyz");

より目立つフォントが必要な場合に使用します。

各要素のフォントを個別に設定したい

 1#include <TStyle.h>
 2
 3// タイトル:太いヘルベチカ
 4gStyle->SetTitleFont(62, "xyz");
 5
 6// 軸ラベル:通常ヘルベチカ
 7gStyle->SetLabelFont(42, "xyz");
 8
 9// 統計情報:小さいヘルベチカ
10gStyle->SetStatFont(42);
11
12// 凡例:通常ヘルベチカ
13gStyle->SetLegendFont(42);
14
15// テキスト(デフォルト):太いヘルベチカ
16gStyle->SetTextFont(62);

各要素で異なるフォントを使用する場合の設定例です。

フォント設定の確認をしたい

 1#include <TStyle.h>
 2
 3int text_font = gStyle->GetTextFont();
 4int title_font = gStyle->GetTitleFont();
 5int label_font = gStyle->GetLabelFont();
 6int legend_font = gStyle->GetLegendFont();
 7int stat_font = gStyle->GetStatFont();
 8
 9// フォント ID と精度を計算
10int font_id = text_font / 10;
11int precision = text_font % 10;

Get*Font()メソッドで現在のフォント設定を確認できます。 フォントIDと精度を計算して分析することも可能です。

実用例

論文用(格調高く)

1#include <TStyle.h>
2
3// Times フォント(精度2 = TrueType)で統一
4gStyle->SetTextFont(132);
5gStyle->SetTitleFont(132, "xyz");
6gStyle->SetLabelFont(132, "xyz");
7gStyle->SetLegendFont(132);
8gStyle->SetStatFont(132);

学位論文や学術論文に適した設定です。

プレゼンテーション用(見やすく)

1#include <TStyle.h>
2
3// Helvetica フォント(太め)で統一
4gStyle->SetTextFont(62);
5gStyle->SetTitleFont(62, "xyz");
6gStyle->SetLabelFont(62, "xyz");
7gStyle->SetLegendFont(62);
8gStyle->SetStatFont(62);

スクリーン表示を想定した読みやすいフォント設定です。

国際学会用(汎用性重視)

1#include <TStyle.h>
2
3// Helvetica フォント(標準)で統一
4gStyle->SetTextFont(42);
5gStyle->SetTitleFont(42, "xyz");
6gStyle->SetLabelFont(42, "xyz");
7gStyle->SetLegendFont(42);
8gStyle->SetStatFont(42);

多くの環境で対応でき、汎用性の高い設定です。

データ分析用(多階層フォント)

 1#include <TStyle.h>
 2
 3// タイトルを太く
 4gStyle->SetTitleFont(62, "xyz");
 5
 6// ラベルと統計情報は標準
 7gStyle->SetLabelFont(42, "xyz");
 8gStyle->SetStatFont(42);
 9gStyle->SetLegendFont(42);
10gStyle->SetTextFont(42);

タイトルを強調しながら、その他は読みやすく統一した設定です。

注意事項

  • フォントの可用性: TrueTypeフォント(精度2)は多くのシステムで利用可能ですが、PostScriptフォント(精度1)はシステムによって異なる場合があります

  • 和文フォント: ROOTは日本語フォントの設定に対応していません。日本語テキストを使用する場合は、別途対応が必要です

  • 印刷時の確認: スクリーン表示では見えなくても、印刷時にフォントが変わることがあります。必要に応じてPDF出力で確認してください

  • 複数のグラフ: 複数のグラフを統一した見た目にするには、同じフォント設定を使用してください

SetXXXFont メソッド一覧

メソッド

対象

引数

SetTextFont()

テキスト要素(デフォルト)

フォントコード

SetTitleFont()

グラフ/ヒストグラムのタイトル

フォントコード、軸指定(“x”、“y”、“z”、“xyz”)

SetLabelFont()

軸ラベル

フォントコード、軸指定

SetLegendFont()

凡例

フォントコード

SetStatFont()

統計情報ボックス

フォントコード

リファレンス