色見本を表示したい(TCanvas::DrawColorTable)
1#include <TCanvas.h>
2
3// キャンバスを作成
4TCanvas *c = new TCanvas("c", "Color Table", 800, 600);
5
6// カラーテーブルを描画
7c->DrawColorTable();
TCanvas::DrawColorTableメソッドでROOTで利用可能なすべての色を視覚的に確認できます。
各色の色番号と色名を表示した見本表をキャンバスに描画します。
1from ROOT import TCanvas
2
3c = TCanvas("c", "Color Table", 800, 600)
4
5# カラーテーブルを描画
6c.DrawColorTable()
メソッドのシグネチャ
1void DrawColorTable()
引数と戻り値
引数:
なし
戻り値:
なし
使用例
カラーテーブルを表示したい
1#include <TCanvas.h>
2
3TCanvas *c = new TCanvas("c", "ROOT Color Table", 800, 600);
4
5// カラーテーブルを描画
6c->DrawColorTable();
ROOTで使用可能なすべての色を一覧で表示します。 各色には色番号が振られており、プログラムで色を指定する際に使用できます。
カラーテーブルを保存したい
1#include <TCanvas.h>
2
3TCanvas *c = new TCanvas("c", "Color Table", 800, 600);
4
5c->DrawColorTable();
6
7// PNG形式で保存
8c->SaveAs("color_table.png");
9
10// PDF形式で保存
11c->SaveAs("color_table.pdf");
カラーテーブルを画像ファイルとして保存できます。
対話モードで表示したい
1root> TCanvas c
2root> c.DrawColorTable()
ROOT対話モードで実行する場合は、上記のように入力します。
ROOTの色について
色の種類
ROOTは以下の色を提供しています:
色番号 |
色名 |
説明 |
|---|---|---|
0 |
White |
白 |
1 |
Black |
黒 |
2 |
Red |
赤 |
3 |
Green |
緑 |
4 |
Blue |
青 |
5 |
Yellow |
黄 |
6 |
Magenta |
マゼンタ |
7 |
Cyan |
シアン |
8 |
Orange |
オレンジ |
9 |
Spring |
スプリング |
10 |
Teal |
ティール |
11+ |
その他 |
拡張色 |
プログラムで色を指定する
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Using Colors", 800, 600);
5
6TH1D *h = new TH1D("h", "Histogram", 100, -5, 5);
7h->FillRandom("gaus", 1000);
8
9// 色番号で指定(例:赤=2)
10h->SetLineColor(2); // 線色を赤に
11h->SetFillColor(3); // 塗りつぶし色を緑に
12h->SetMarkerColor(4); // マーカー色を青に
13
14h->Draw();
色番号を使って、ヒストグラムやグラフの色を指定できます。
色の効果的な組み合わせ
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Color Combinations", 1200, 400);
5
6c->Divide(3, 1);
7
8// パッド1:温色系
9c->cd(1);
10TH1D *h1 = new TH1D("h1", "Warm Colors", 50, -5, 5);
11h1->FillRandom("gaus", 1000);
12h1->SetLineColor(2); // 赤
13h1->SetFillColor(5); // 黄
14h1->Draw();
15
16// パッド2:冷色系
17c->cd(2);
18TH1D *h2 = new TH1D("h2", "Cool Colors", 50, -5, 5);
19h2->FillRandom("gaus", 1000);
20h2->SetLineColor(4); // 青
21h2->SetFillColor(7); // シアン
22h2->Draw();
23
24// パッド3:対比効果
25c->cd(3);
26TH1D *h3 = new TH1D("h3", "Contrast", 50, -5, 5);
27h3->FillRandom("gaus", 1000);
28h3->SetLineColor(1); // 黒
29h3->SetFillColor(5); // 黄
30h3->Draw();
色の組み合わせで視覚的な効果を高めることができます。
カラーテーブルの活用
複数のデータを異なる色で表示
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Multi-colored Histograms", 800, 600);
5
6// 複数のヒストグラムを異なる色で表示
7TH1D *h1 = new TH1D("h1", "Data 1", 50, -5, 5);
8h1->FillRandom("gaus", 5000);
9h1->SetLineColor(2); // 赤
10h1->Draw();
11
12TH1D *h2 = new TH1D("h2", "Data 2", 50, -5, 5);
13h2->FillRandom("gaus", 5000);
14h2->SetLineColor(4); // 青
15h2->Draw("SAME");
16
17TH1D *h3 = new TH1D("h3", "Data 3", 50, -5, 5);
18h3->FillRandom("gaus", 5000);
19h3->SetLineColor(3); // 緑
20h3->Draw("SAME");
21
22// 凡例を追加
23TLegend *leg = new TLegend(0.7, 0.7, 0.9, 0.9);
24leg->AddEntry(h1, "Data 1 (Red)", "l");
25leg->AddEntry(h2, "Data 2 (Blue)", "l");
26leg->AddEntry(h3, "Data 3 (Green)", "l");
27leg->Draw();
複数のデータセットを異なる色で視覚的に区別できます。
グリッドに色を適用
1#include <TCanvas.h>
2#include <TGraph.h>
3
4TCanvas *c = new TCanvas("c", "Colored Grid", 800, 600);
5
6TGraph *g = new TGraph();
7
8for (int i = 0; i < 50; i++) {
9 double x = i * 0.2;
10 double y = sin(x);
11 g->SetPoint(i, x, y);
12}
13
14// グラフを青で描画
15g->SetLineColor(4);
16g->SetMarkerColor(4);
17g->SetMarkerStyle(20);
18g->Draw("APL");
19
20// グリッドラインを灰色で表示
21c->SetGridx();
22c->SetGridy();
グリッドに色を付けてグラフを見やすくできます。
色の選択ガイドライン
データ表示における色の使い分け
用途 |
推奨色 |
理由 |
|---|---|---|
メインデータ |
2(赤)または4(青) |
視認性が高い |
比較データ1 |
3(緑) |
赤との区別がしやすい |
比較データ2 |
6(マゼンタ) |
複数データの区別に有効 |
背景 |
0(白)または15(灰色) |
コントラストが取りやすい |
グリッド |
13-18(淡色) |
データを見やすくする |
プレゼンテーション用色選択
1// 推奨:背景色を明るくしてコントラストを高める
2gStyle->SetCanvasColor(0); // 白背景
3
4// 避けるべき:背景色が濃いと見えにくい
5// gStyle->SetCanvasColor(1); // 黒背景
プレゼンテーション資料では背景色とのコントラストが重要です。
カラーテーブルの関連機能
カラーパレットの変更
1#include <TCanvas.h>
2#include <TStyle.h>
3
4// ROOTのカラーパレットを変更
5gStyle->SetPalette(1); // カラーパレット1を設定
6
7// キャンバスを作成して描画
8TCanvas *c = new TCanvas("c", "Alternative Palette", 800, 600);
9c->DrawColorTable();
異なるカラーパレットを選択することで、さまざまな色配列が利用できます。
カスタムカラーの定義
1#include <TCanvas.h>
2#include <TROOT.h>
3
4TCanvas *c = new TCanvas("c", "Custom Colors", 800, 600);
5
6// カスタムカラーを定義(RGB値で指定)
7Int_t customColor = TColor::GetColor(255, 128, 0); // オレンジ
8
9// ヒストグラムにカスタムカラーを適用
10TH1D *h = new TH1D("h", "Custom Color", 100, -5, 5);
11h->FillRandom("gaus", 1000);
12h->SetLineColor(customColor);
13h->Draw();
RGB値を使ってカスタムカラーを定義し、より細かい色調整が可能です。