メインコンテンツ

グラフィックスとアプリ テーマ

R2025a 以降

グラフィックス テーマを使用して、Figure やその内容 (プロットやアプリなど) についてライトまたはダークの全体的な外観を選択します。既定では、Figure のテーマは MATLAB® デスクトップのテーマに一致します。ただし、特定の Figure またはセッション内のすべての Figure のテーマを MATLAB デスクトップとは別に制御できます。MATLAB が Figure 内の要素の色をどのように更新するかを理解することで、異なるテーマ構成のシステムでも一貫した結果が得られるようにプロットやアプリを設計できます。

Figure テーマの設定

既定では、MATLAB デスクトップはオペレーティング システムのテーマを使用し、Figure はデスクトップのテーマを使用します。そのため、オペレーティング システムをダーク テーマを使用するように構成している場合、MATLAB はダーク テーマで開き、Figure もダークになります。個々の Figure のテーマを制御するには、次のいずれかの方法を使用します。

  • theme 関数を呼び出すtheme 関数を呼び出して Figure のテーマを明示的に設定します。あるいは、Figure オブジェクトの Theme プロパティを直接設定することができます。この方法を使用すると、既定のテーマに関係なく、コードによって特定のテーマをもつ Figure が作成されるようにできます。

  • Figure のツールストリップでテーマを選択する — Figure の上部の [書式設定] タブで、[テーマ] メニューを開きます。任意のメニュー項目にカーソルを置くと、特定のテーマを使用した Figure をプレビューできます。項目を選択してそのテーマを Figure に適用します。コードを記述せずに特定の Figure のテーマを対話的な方法で変更する場合にこの方法を使用します。

あるいは、MATLAB の [設定] ウィンドウを使用してすべての Figure のテーマを設定できます。MATLAB ツールストリップの [ホーム] タブで、[環境] セクションの [設定] をクリックし、[MATLAB]、[外観] を選択します。次に、[Figure のテーマ] メニューから項目を選択します。この設定は MATLAB セッションをまたいで保持されます。この方法は、MATLAB の作業環境を基本設定に合わせて構成する場合に便利です。

テーマ付き Figure 内のオブジェクトの色のカスタマイズ

既定では、MATLAB は、UI コンポーネントおよびグラフィックス オブジェクト (LineScatter など) の色を Figure の Theme プロパティの値に従って設定します。Theme プロパティが変更されると、Figure 内のオブジェクトの色は可視性を保持するように自動的に更新されます。

特定のオブジェクトについてこの自動的な動作をオーバーライドするには、そのオブジェクトの色プロパティを設定します。RGB 3 成分、16 進数カラー コード、または色名を指定することでほとんどの色プロパティを設定できます。場合によっては、そのオブジェクトを作成する関数の入力引数として色を指定できます。たとえば、plot 関数を呼び出すときにライン プロットの色を指定したり、Line オブジェクトの Color プロパティを指定したりできます。

% Specify the color using a function argument
p = plot([0 4 1 7 3 9],"-red");

% Set the Color property to an RGB triplet
p.Color = [0.2 0.8 0.3];

オブジェクトのカラー値を明示的に指定した場合、テーマが変更されても MATLAB はカラー値を更新しません。代わりに、テーマに関係なくその値が維持されます。以下のイメージの例では、アプリはプロット内の緑のマーカーを除く Figure 内のすべてのオブジェクトに既定のカラー値を使用し、緑のマーカーは明示的に設定しています。ダークテーマの Figure 内の青とオレンジの (既定の) 色のマーカーはライトテーマの Figure 内のマーカーと色相は似ていますが、わずかに明るいことが分かります。さらに、テキストと座標軸のラインの色もそれぞれのテーマで異なります。これらの変化は一貫性を維持し、可視性を保持するのに役立ちます。それとは対照的に、緑のマーカーのカラー値は両方の Figure で同じです。これは色が明示的に設定されているためです。

Two nearly identical apps. One app has a light theme and displays two series of scattered markers (with the default colors) plus one green marker. The other app has a dark theme and displays the same markers. The colors of the two series of markers are slightly brighter in the dark theme, but the green marker is unchanged.

MATLAB は、条件 (テーマなど) が変化したときに、更新すべきプロパティ値を特定するためにモード プロパティを使用します。多くのオブジェクト (ただし、すべてではありません) について、モード プロパティにアクセスできます。モード プロパティはオブジェクトの特定のプロパティとペアになっていて、名前の最後に "Mode" という語が付いています。たとえば、Line オブジェクトには Color プロパティと ColorMode プロパティがあります。ColorMode プロパティの値が "auto" (既定値) の場合、テーマが変わると MATLAB によって Color プロパティが更新されます。ColorMode プロパティの値が "manual" の場合は、テーマに関係なく Color プロパティが保持されます。関数の引数または Color プロパティを使用して色を指定すると、MATLAB は ColorMode プロパティを "auto" から "manual" に変更します。

たとえば、ライトテーマの Figure を作成し、2 つのライン p1p2 をプロットするとします。p1 は既定の色を使用して作成し、p2 のカラー値を Color プロパティを設定して [1 0 0] (赤) に変更します。

f = figure(Theme="light");
p1 = plot(5:11,LineWidth=2);
hold on 
p2 = plot([4 5 6 7 6.5 8 9.5],LineWidth=2); 
p2.Color = [1 0 0];

Plot of two lines in a light-themed figure. One line uses a color from the default palette for the light theme. The other line uses a custom shade of red.

p1ColorColorMode のプロパティを表示します。

p1_lightcolor = p1.Color
p1_colormode = p1.ColorMode
p1_lightcolor = 

        0.0660   0.4430   0.7450

p1_colormode = 

        'auto'

p2ColorColorMode のプロパティを表示します。

p2_lightcolor = p2.Color
p2_colormode = p2.ColorMode
p2_lightcolor =

     1   0   0

p2_colormode =

     'manual'

テーマを "dark" に変更します。

theme(f,"dark")

Plot of two lines in a dark-themed figure. One line uses a color from the default palette for the dark theme, which is slightly brighter than the corresponding color in the light theme. The other line uses the same custom shade of red as in the light-themed figure.

Color のプロパティを再度表示します。p1 のカラー値はテーマの変更時に変化していますが、p2 のカラー値は変化しませんでした。

p1_darkcolor = p1.Color
p2_darkcolor = p2.Color
p1_darkcolor = 

     0.1490   0.5490   0.8660

p2_darkcolor =

     1    0    0

以前のリリースからのコードの更新

テーマが導入される前にカラー値を指定するコードを作成していた場合、背景色の変更により、それらの色はダーク テーマでは見えにくくなる可能性があります。コードを実行しているシステムに関係なくプロットやアプリの可視性を維持するには、theme 関数または Figure の Theme プロパティを使用して Figure に適用するテーマを設定します。テーマを明示的に設定すると、Figure およびそのコンテンツは、オペレーティング システムのテーマ、MATLAB デスクトップ、MATLAB セッション内の他の Figure のテーマの影響を受けなくなります。

テーマに応じて更新されるカスタム色を使用したグラフィックスやアプリを作成する場合は、異なるテーマでも一貫性があり読みやすい表示を実現するために、さまざまな手法を使用できます。詳細については、Design Graphics and Apps for Different Themesを参照してください。

参考

関数

オブジェクト

トピック