STEP 41:再利用可能なテンプレートの作成

🎨 STEP 41: 再利用可能なテンプレートの作成

何度も使えるグラフのテンプレートを作って、作業効率を上げよう!

📋 このステップで学ぶこと

  • テンプレートとは何か、なぜ必要なのか
  • plt.rcParamsを使ったMatplotlibのデフォルト設定
  • 企業カラーパレットの定義方法
  • 複数のテーマ(コーポレート、プレゼン、ミニマル)の切り替え
  • よく使うグラフを関数化する方法
  • テンプレートライブラリの構築と共有

🎨 1. テンプレートの必要性

テンプレートとは

テンプレートとは、グラフの「ひな形」です。フォント、色、サイズなどの設定を一度定義しておけば、毎回同じ設定を書かなくて済むようになります。

Wordでテンプレートを使うと、毎回フォントやレイアウトを設定しなくて済むように、グラフにもテンプレートを用意しておくと、作業効率が大幅にアップします。

💡 テンプレートを身近な例で考えると

料理のレシピを想像してください。毎回「塩は何グラム、砂糖は何グラム」と考えるのは大変です。「基本の調味料配合」をメモしておけば、すぐに調理を始められます。

テンプレートも同じで、「基本のグラフ設定」を保存しておけば、データを入れるだけで美しいグラフが完成します。

📊 テンプレートの5つの利点
利点 テンプレートなし テンプレートあり
時間短縮 毎回フォント・色・サイズを設定 一発で設定完了
一貫性 グラフごとにデザインがバラバラ すべて統一されたデザイン
ブランディング 汎用的な色使い 企業カラーで統一
メンテナンス 100個のグラフを個別修正 1箇所の修正で全体に反映
チーム共有 人によってスタイルが違う 全員が同じスタイル
🎯 テンプレート化すべきもの
項目 具体例 テンプレート化のメリット
企業カラー ブランドカラーを定義 どのグラフも同じ色で統一
フォント タイトル16pt、ラベル12pt 読みやすいサイズを維持
グリッド グレーの点線、透明度30% グラフの見た目を統一
凡例 右上、フォントサイズ11pt 凡例の位置を統一
よく使うグラフ 売上推移、Before/After 関数1つで完成

⚙️ 2. plt.rcParamsでデフォルト設定を変更

plt.rcParamsとは

plt.rcParamsは、Matplotlibのデフォルト設定を管理する辞書です。この辞書を変更することで、それ以降に作成するすべてのグラフに設定が適用されます。

「rc」はRun Commandの略で、プログラムの起動時に読み込まれる設定を意味します。

【plt.rcParamsの仕組み】 plt.rcParams は辞書型のオブジェクト: plt.rcParams = { ‘font.size’: 12, # フォントサイズ ‘axes.titlesize’: 16, # タイトルのサイズ ‘lines.linewidth’: 2, # 線の太さ ‘figure.figsize’: (10, 6), # 図のサイズ … 数百個の設定項目 } → この値を変更すると、以降のグラフに反映される

基本的な設定方法

まず、plt.rcParamsを使って基本的な設定を変更する方法を学びましょう。

# ライブラリを読み込む import matplotlib.pyplot as plt import numpy as np
# フォントサイズを変更 plt.rcParams[‘font.size’] = 12 # タイトルのサイズと太さを変更 plt.rcParams[‘axes.titlesize’] = 16 plt.rcParams[‘axes.titleweight’] = ‘bold’ # 軸ラベルのサイズを変更 plt.rcParams[‘axes.labelsize’] = 14
📝 コードの意味
コード 意味 なぜ必要か
plt.rcParams[‘font.size’] 基本のフォントサイズ すべてのテキストの基準サイズ
plt.rcParams[‘axes.titlesize’] グラフタイトルのサイズ タイトルを目立たせるため
plt.rcParams[‘axes.titleweight’] タイトルの太さ ‘bold’で太字にする
plt.rcParams[‘axes.labelsize’] 軸ラベルのサイズ X軸・Y軸のラベルサイズ

設定関数を作成する

設定を関数にまとめると、使いたいときに1行で呼び出せるようになります。これが「テンプレート」の第一歩です。

コードが長いので、スマートフォンでは横スクロールして確認してください。

# ========================================= # 【実践】カスタムスタイル設定関数 # ========================================= import matplotlib.pyplot as plt import numpy as np def setup_matplotlib_style(): “””Matplotlibのカスタムスタイルを設定する関数””” # —– フォント設定 —– plt.rcParams[‘font.family’] = ‘sans-serif’ # フォントの種類 plt.rcParams[‘font.size’] = 12 # 基本フォントサイズ plt.rcParams[‘axes.titlesize’] = 16 # タイトルサイズ plt.rcParams[‘axes.titleweight’] = ‘bold’ # タイトルを太字 plt.rcParams[‘axes.labelsize’] = 14 # 軸ラベルサイズ # —– グリッド設定 —– plt.rcParams[‘axes.grid’] = True # グリッドを表示 plt.rcParams[‘grid.color’] = ‘gray’ # グリッドの色 plt.rcParams[‘grid.linestyle’] = ‘–‘ # グリッドを点線に plt.rcParams[‘grid.alpha’] = 0.3 # グリッドの透明度 # —– 線のスタイル —– plt.rcParams[‘lines.linewidth’] = 2 # 線の太さ plt.rcParams[‘lines.markersize’] = 8 # マーカーサイズ # —– 図のサイズ —– plt.rcParams[‘figure.figsize’] = (10, 6) # 図のサイズ plt.rcParams[‘figure.dpi’] = 100 # 画面表示の解像度 # —– 保存設定 —– plt.rcParams[‘savefig.dpi’] = 300 # 保存時の解像度 plt.rcParams[‘savefig.bbox’] = ‘tight’ # 余白を自動調整 # —– 枠線設定 —– plt.rcParams[‘axes.spines.top’] = False # 上の枠線を非表示 plt.rcParams[‘axes.spines.right’] = False # 右の枠線を非表示 print(“✓ カスタムスタイルを適用しました!”) # 関数を実行して設定を適用 setup_matplotlib_style() # テスト:グラフを作成 fig, ax = plt.subplots() ax.plot([1, 2, 3, 4], [1, 4, 2, 3], marker=’o’) ax.set_title(‘カスタムスタイルのグラフ’) ax.set_xlabel(‘X軸’) ax.set_ylabel(‘Y軸’) plt.show()
📝 主要なrcParams設定項目
カテゴリ 設定項目 説明
フォント font.size, font.family 基本のフォント設定
タイトル axes.titlesize, axes.titleweight グラフタイトルの設定
軸ラベル axes.labelsize, axes.labelcolor X軸・Y軸ラベルの設定
グリッド axes.grid, grid.color, grid.alpha グリッド線の設定
lines.linewidth, lines.markersize 線グラフの線の太さ
figure.figsize, figure.dpi 図のサイズと解像度
保存 savefig.dpi, savefig.bbox 画像保存時の設定
枠線 axes.spines.top, axes.spines.right 枠線の表示/非表示

🎨 3. 企業カラーパレットの定義

なぜ企業カラーが重要か

企業には「ブランドカラー」があります。たとえば、Googleなら青・赤・黄・緑、Appleなら白・黒・シルバーなど。グラフにも企業カラーを適用することで、ブランドイメージを統一できます。

Pythonでは、カラーコード(#0068B7など)をクラスにまとめて定義すると、いつでも簡単に呼び出せます。

コードが長いので、スマートフォンでは横スクロールして確認してください。

# ========================================= # 【実践】企業カラーパレットの定義 # ========================================= import matplotlib.pyplot as plt import numpy as np class CorporateColors: “””企業カラーパレットを管理するクラス””” # —– メインカラー —– PRIMARY = ‘#0068B7’ # コーポレートブルー(メインの青) SECONDARY = ‘#009944’ # グリーン(サブカラー) ACCENT = ‘#F39800’ # オレンジ(アクセント) # —– 濃淡バリエーション —– LIGHT_BLUE = ‘#4DB8E8’ # 薄い青 DARK_BLUE = ‘#003D6B’ # 濃い青 LIGHT_GREEN = ‘#4DBB7A’ # 薄い緑 # —– ニュートラルカラー —– DARK_GRAY = ‘#333333’ # 濃いグレー(テキスト用) GRAY = ‘#666666’ # グレー LIGHT_GRAY = ‘#CCCCCC’ # 薄いグレー WHITE = ‘#FFFFFF’ # 白 # —– ステータスカラー —– SUCCESS = ‘#009944’ # 成功(緑) WARNING = ‘#F39800’ # 警告(オレンジ) DANGER = ‘#E60012’ # 危険・エラー(赤) INFO = ‘#0068B7’ # 情報(青) # —– カラーパレット(リスト形式) —– PALETTE = [PRIMARY, SECONDARY, ACCENT, LIGHT_BLUE, LIGHT_GREEN] # 使用例 colors = CorporateColors() # テスト:企業カラーで棒グラフを作成 fig, ax = plt.subplots(figsize=(10, 6)) categories = [‘商品A’, ‘商品B’, ‘商品C’, ‘商品D’, ‘商品E’] values = [30, 45, 20, 35, 25] ax.bar(categories, values, color=colors.PALETTE, edgecolor=’black’, linewidth=1.5) ax.set_title(‘企業カラーを使用したグラフ’, fontsize=16, fontweight=’bold’) ax.set_ylabel(‘売上(万円)’, fontsize=12) ax.grid(axis=’y’, alpha=0.3) plt.tight_layout() plt.show() print(“✓ 企業カラーでグラフを作成しました!”)
📝 カラークラスの仕組み
コード 意味 使い方
class CorporateColors: カラーをまとめるクラスを定義 colors = CorporateColors()
PRIMARY = ‘#0068B7’ メインカラーを定義 colors.PRIMARY で呼び出し
PALETTE = […] 複数の色をリストで定義 color=colors.PALETTE

🔄 4. 複数テーマの切り替え

用途に応じたテーマ

グラフの用途によって、最適なデザインは異なります。正式なレポートにはコーポレートテーマ、プレゼンにはダークテーマ、論文にはミニマルテーマなど、複数のテーマを切り替えられると便利です。

🎨 テーマの種類と用途
テーマ名 特徴 適した用途
コーポレート 企業カラー、白背景 正式レポート、社内資料
プレゼンテーション ダーク背景、太い線 スライド、会議室での発表
ミニマリスト シンプル、グリッドなし 論文、学術発表
カラフル 明るい色、楽しい雰囲気 教育資料、SNS投稿

コードが長いので、スマートフォンでは横スクロールして確認してください。

# ========================================= # 【実践】複数テーマの定義と切り替え # ========================================= import matplotlib.pyplot as plt import numpy as np class PlotThemes: “””グラフテーマを管理するクラス””” @staticmethod def apply_corporate_theme(): “””コーポレートテーマ(正式発表用)””” plt.style.use(‘seaborn-v0_8-whitegrid’) plt.rcParams.update({ ‘font.size’: 12, ‘axes.titlesize’: 16, ‘axes.titleweight’: ‘bold’, ‘axes.labelsize’: 14, ‘axes.prop_cycle’: plt.cycler(color=[ ‘#0068B7’, ‘#009944’, ‘#F39800’, ‘#E60012’, ‘#920783’ ]), ‘figure.facecolor’: ‘white’, ‘axes.facecolor’: ‘white’, ‘grid.alpha’: 0.3, ‘lines.linewidth’: 2.5 }) print(“✓ コーポレートテーマを適用しました”) @staticmethod def apply_presentation_theme(): “””プレゼンテーマ(ダーク背景)””” plt.style.use(‘dark_background’) plt.rcParams.update({ ‘font.size’: 14, ‘axes.titlesize’: 18, ‘axes.titleweight’: ‘bold’, ‘axes.labelsize’: 16, ‘axes.prop_cycle’: plt.cycler(color=[ ‘#4DB8E8’, ‘#4DBB7A’, ‘#FFB84D’, ‘#FF6B6B’, ‘#C792EA’ ]), ‘lines.linewidth’: 3, ‘grid.alpha’: 0.2 }) print(“✓ プレゼンテーマを適用しました”) @staticmethod def apply_minimalist_theme(): “””ミニマリストテーマ(論文向け)””” plt.style.use(‘default’) plt.rcParams.update({ ‘font.size’: 11, ‘axes.titlesize’: 14, ‘axes.labelsize’: 12, ‘axes.spines.top’: False, ‘axes.spines.right’: False, ‘axes.grid’: False, ‘axes.prop_cycle’: plt.cycler(color=[‘#000000’, ‘#666666’]), ‘lines.linewidth’: 1.5 }) print(“✓ ミニマリストテーマを適用しました”) # 使用例:コーポレートテーマを適用 PlotThemes.apply_corporate_theme() # テスト:複数の線を描画 fig, ax = plt.subplots(figsize=(10, 6)) for i in range(5): ax.plot([1, 2, 3, 4], [i+1, i+3, i+2, i+4], marker=’o’, label=f’データ{i+1}’) ax.set_title(‘コーポレートテーマのグラフ’) ax.set_xlabel(‘X軸’) ax.set_ylabel(‘Y軸’) ax.legend() plt.show()
📝 テーマ切り替えのポイント

@staticmethodは「クラスのインスタンスを作らずに呼び出せるメソッド」を定義するデコレータです。これにより、以下のように簡潔に呼び出せます。

PlotThemes.apply_corporate_theme() ← インスタンス作成不要!

🔧 5. 汎用プロット関数の作成

よく使うグラフを関数化する

「売上推移グラフ」「Before/After比較グラフ」「KPIカード」など、よく使うグラフは関数にまとめておくと、データを渡すだけで美しいグラフが完成します。

コードが長いので、スマートフォンでは横スクロールして確認してください。

# ========================================= # 【実践】売上推移グラフのテンプレート関数 # ========================================= import matplotlib.pyplot as plt import pandas as pd import numpy as np def plot_sales_trend(data, x_col, y_col, title=’売上推移’, target=None, figsize=(12, 6)): “”” 売上推移グラフを作成する関数 Parameters(パラメータ): ———————– data : DataFrame データフレーム x_col : str X軸のカラム名(日付・月など) y_col : str Y軸のカラム名(売上など) title : str グラフタイトル target : float 目標値(オプション、指定すると赤い点線を表示) figsize : tuple 図のサイズ Returns(戻り値): —————– fig, ax : matplotlib の Figure と Axes オブジェクト “”” # グラフの作成 fig, ax = plt.subplots(figsize=figsize) # メインの折れ線グラフ ax.plot(data[x_col], data[y_col], marker=’o’, linewidth=3, markersize=10, color=’#0068B7′, label=’実績’) # 目標線(オプション) if target is not None: ax.axhline(y=target, color=’#E60012′, linestyle=’–‘, linewidth=2, label=’目標’) # スタイリング ax.set_title(title, fontsize=18, fontweight=’bold’, pad=20) ax.set_xlabel(x_col, fontsize=14) ax.set_ylabel(y_col, fontsize=14) ax.legend(fontsize=12) ax.grid(axis=’y’, alpha=0.3) # 値ラベルを追加 for x, y in zip(data[x_col], data[y_col]): ax.text(x, y, f'{y:,.0f}’, ha=’center’, va=’bottom’, fontsize=10) plt.tight_layout() return fig, ax # —– 使用例 —– # サンプルデータを作成 df_sales = pd.DataFrame({ ‘月’: [‘1月’, ‘2月’, ‘3月’, ‘4月’, ‘5月’, ‘6月’], ‘売上’: [100, 120, 115, 140, 135, 150] }) # 関数を呼び出すだけでグラフが完成! fig, ax = plot_sales_trend( df_sales, x_col=’月’, y_col=’売上’, title=’2024年上半期 売上推移’, target=130 # 目標値 ) plt.show() print(“✓ テンプレート関数で売上推移グラフを作成しました!”)

Before/After比較グラフのテンプレート

施策の効果を示すために使う「Before/After比較グラフ」もテンプレート化しておくと便利です。

コードが長いので、スマートフォンでは横スクロールして確認してください。

# ========================================= # 【実践】Before/After比較グラフのテンプレート # ========================================= import matplotlib.pyplot as plt import numpy as np def plot_before_after(categories, before, after, title=’Before/After 比較’, figsize=(10, 6)): “”” Before/After比較グラフを作成する関数 Parameters: ———– categories : list カテゴリ名のリスト(例: [‘訪問者数’, ‘CV数’, ‘CVR’]) before : list Before の値のリスト after : list After の値のリスト title : str グラフタイトル figsize : tuple 図のサイズ “”” fig, ax = plt.subplots(figsize=figsize) x = np.arange(len(categories)) # カテゴリの位置 width = 0.35 # 棒の幅 # Before の棒グラフ(赤系) bars1 = ax.bar(x – width/2, before, width, label=’Before’, color=’#E60012′, alpha=0.8) # After の棒グラフ(緑系) bars2 = ax.bar(x + width/2, after, width, label=’After’, color=’#009944′, alpha=0.8) # スタイリング ax.set_title(title, fontsize=18, fontweight=’bold’, pad=20) ax.set_ylabel(‘値’, fontsize=14) ax.set_xticks(x) ax.set_xticklabels(categories, fontsize=12) ax.legend(fontsize=12) ax.grid(axis=’y’, alpha=0.3) # 値ラベルを追加 for bars in [bars1, bars2]: for bar in bars: height = bar.get_height() ax.text(bar.get_x() + bar.get_width()/2., height, f'{height:,.0f}’, ha=’center’, va=’bottom’, fontsize=10) plt.tight_layout() return fig, ax # —– 使用例 —– categories = [‘訪問者数’, ‘CV数’, ‘CVR’] before = [10000, 50, 0.5] after = [15000, 120, 0.8] fig, ax = plot_before_after( categories, before, after, title=’広告施策 Before/After’ ) plt.show() print(“✓ Before/After比較グラフを作成しました!”)
【テンプレート関数のメリット】 従来のコード: fig, ax = plt.subplots(figsize=(10, 6)) ax.bar(…) ax.set_title(…) ax.set_xlabel(…) ax.set_ylabel(…) ax.legend(…) … 20行以上のコード テンプレート関数を使うと: fig, ax = plot_before_after(categories, before, after) … たった1行で完成! → コード量が大幅に削減される → 毎回同じ品質のグラフが作れる → 設定ミスがなくなる

📦 6. テンプレートライブラリの構築

ライブラリとしてまとめる

ここまで作成したカラーパレット、テーマ、グラフ関数を1つのファイルにまとめると、どのプロジェクトでも再利用できる「ライブラリ」になります。

コードが長いので、スマートフォンでは横スクロールして確認してください。

# ========================================= # viz_templates.py(ファイルとして保存) # ========================================= “”” データ可視化テンプレートライブラリ 使い方: from viz_templates import PlotLib lib = PlotLib() fig, ax = lib.line_chart(df, ‘月’, ‘売上’) “”” import matplotlib.pyplot as plt import pandas as pd import numpy as np # ========== カラー定義 ========== class Colors: “””カラーパレット””” PRIMARY = ‘#0068B7’ SECONDARY = ‘#009944’ ACCENT = ‘#F39800’ DANGER = ‘#E60012’ SUCCESS = ‘#009944’ WARNING = ‘#F39800’ INFO = ‘#0068B7’ PALETTE = [PRIMARY, SECONDARY, ACCENT, DANGER, ‘#920783’] # ========== スタイル定義 ========== class Styles: “””スタイル設定””” @staticmethod def corporate(): “””コーポレートスタイルを適用””” plt.rcParams.update({ ‘font.size’: 12, ‘axes.titlesize’: 16, ‘axes.titleweight’: ‘bold’, ‘axes.labelsize’: 14, ‘axes.prop_cycle’: plt.cycler(color=Colors.PALETTE), ‘figure.figsize’: (10, 6), ‘grid.alpha’: 0.3, ‘lines.linewidth’: 2.5 }) print(“✓ コーポレートスタイルを適用”) # ========== プロットライブラリ ========== class PlotLib: “””グラフ作成ライブラリ””” def __init__(self, style=’corporate’): “””初期化(スタイルを適用)””” if style == ‘corporate’: Styles.corporate() self.colors = Colors() def line_chart(self, data, x, y, title=”, target=None, **kwargs): “””折れ線グラフを作成””” fig, ax = plt.subplots(figsize=kwargs.get(‘figsize’, (10, 6))) ax.plot(data[x], data[y], marker=’o’, linewidth=3, markersize=10, color=self.colors.PRIMARY) if target: ax.axhline(y=target, color=self.colors.DANGER, linestyle=’–‘, linewidth=2, label=’目標’) ax.set_title(title, fontsize=18, fontweight=’bold’) ax.set_xlabel(x, fontsize=14) ax.set_ylabel(y, fontsize=14) ax.grid(axis=’y’, alpha=0.3) return fig, ax def bar_chart(self, data, x, y, title=”, **kwargs): “””棒グラフを作成””” fig, ax = plt.subplots(figsize=kwargs.get(‘figsize’, (10, 6))) colors = kwargs.get(‘colors’, self.colors.PALETTE) ax.bar(data[x], data[y], color=colors, edgecolor=’black’, linewidth=1.5) ax.set_title(title, fontsize=18, fontweight=’bold’) ax.set_xlabel(x, fontsize=14) ax.set_ylabel(y, fontsize=14) ax.grid(axis=’y’, alpha=0.3) return fig, ax def comparison_chart(self, categories, before, after, title=”, **kwargs): “””Before/After比較グラフを作成””” fig, ax = plt.subplots(figsize=kwargs.get(‘figsize’, (10, 6))) x = np.arange(len(categories)) width = 0.35 ax.bar(x – width/2, before, width, label=’Before’, color=self.colors.DANGER, alpha=0.8) ax.bar(x + width/2, after, width, label=’After’, color=self.colors.SUCCESS, alpha=0.8) ax.set_title(title, fontsize=18, fontweight=’bold’) ax.set_xticks(x) ax.set_xticklabels(categories) ax.legend() ax.grid(axis=’y’, alpha=0.3) return fig, ax def save(self, fig, filename, dpi=300): “””図を画像として保存””” fig.savefig(filename, dpi=dpi, bbox_inches=’tight’) print(f”✓ 保存しました: {filename}”)

ライブラリの使い方

上記のコードをviz_templates.pyというファイルに保存すると、別のPythonファイルやノートブックから以下のように呼び出せます。

# ========================================= # 別のファイルでライブラリを使用 # ========================================= # ライブラリをインポート from viz_templates import PlotLib import pandas as pd # ライブラリを初期化 lib = PlotLib() # サンプルデータ df = pd.DataFrame({ ‘月’: [‘1月’, ‘2月’, ‘3月’, ‘4月’, ‘5月’, ‘6月’], ‘売上’: [100, 120, 115, 140, 135, 150] }) # 折れ線グラフを作成(1行で完成!) fig, ax = lib.line_chart(df, ‘月’, ‘売上’, title=’売上推移’, target=130) # 画像として保存 lib.save(fig, ‘sales_trend.png’) plt.show()
💡 ライブラリ化のメリット
メリット 説明
再利用性 どのプロジェクトでも同じライブラリを使える
保守性 ライブラリを更新すれば、すべてのプロジェクトに反映
チーム共有 Gitで共有すれば、チーム全員が同じスタイルで作業
生産性向上 毎回同じコードを書く必要がなくなる

📝 STEP 41 のまとめ

✅ このステップで学んだこと
トピック 重要ポイント
テンプレートの必要性 時間短縮、一貫性、ブランディング
plt.rcParams Matplotlibのデフォルト設定を変更
企業カラー クラスでカラーコードを一元管理
複数テーマ 用途に応じてテーマを切り替え
汎用関数 よく使うグラフを関数化
ライブラリ化 再利用可能なモジュールとして保存
💡 最重要ポイント

テンプレートを作ることで、作業時間が大幅に短縮され、デザインの一貫性も保てます。

plt.rcParamsで基本設定を定義し、汎用プロット関数でよく使うグラフを関数化することで、数行のコードで美しいグラフが作成できます。

チーム全体で同じテンプレートを使うことで、ブランドイメージも統一されます!

📝 実践演習

演習 1 基礎

plt.rcParamsを使って、フォントサイズ14、線の太さ3に設定してください。

【解答コード】
import matplotlib.pyplot as plt # フォントサイズと線の太さを設定 plt.rcParams[‘font.size’] = 14 plt.rcParams[‘lines.linewidth’] = 3 # テスト fig, ax = plt.subplots() ax.plot([1, 2, 3], [1, 4, 2]) ax.set_title(‘テスト’) plt.show()

ポイント:plt.rcParams[‘設定名’] = 値 の形式で設定します。

演習 2 応用

自分だけのカラーパレット(3色以上)をクラスで定義し、棒グラフに適用してください。

【解答コード】
import matplotlib.pyplot as plt # 自分のカラーパレットを定義 class MyColors: RED = ‘#FF6B6B’ GREEN = ‘#4ECDC4’ BLUE = ‘#45B7D1’ PALETTE = [RED, GREEN, BLUE] colors = MyColors() # グラフ作成 categories = [‘A’, ‘B’, ‘C’] values = [30, 45, 25] fig, ax = plt.subplots() ax.bar(categories, values, color=colors.PALETTE) ax.set_title(‘自分のカラーパレット’) plt.show()

ポイント:クラスにカラーコードを定義し、PALETTEリストでまとめます。

演習 3 発展

売上推移グラフを作成するテンプレート関数を作成し、サンプルデータで動作確認してください。

【解答コード】
import matplotlib.pyplot as plt import pandas as pd def my_line_chart(data, x, y, title=”): “””自作の折れ線グラフ関数””” fig, ax = plt.subplots(figsize=(10, 6)) ax.plot(data[x], data[y], marker=’o’, linewidth=2, color=’#0068B7′) ax.set_title(title, fontsize=16, fontweight=’bold’) ax.set_xlabel(x) ax.set_ylabel(y) ax.grid(alpha=0.3) return fig, ax # テスト df = pd.DataFrame({ ‘月’: [‘1月’, ‘2月’, ‘3月’], ‘売上’: [100, 120, 110] }) fig, ax = my_line_chart(df, ‘月’, ‘売上’, title=’売上推移テスト’) plt.show()

ポイント:関数にまとめることで、1行で呼び出せるようになります。

❓ よくある質問

Q1: plt.rcParamsの設定は永続しますか?
いいえ、Pythonセッションが終了するとリセットされます。毎回設定を適用するには、スクリプトの最初に設定関数を呼び出すか、matplotlibrcファイルを作成してください。matplotlibrcファイルをプロジェクトフォルダに置くと、そのフォルダで実行する際に自動的に読み込まれます。
Q2: テンプレートはどこまで作り込むべきですか?
よく使うものから始めましょう。最初は3〜5個の基本的なグラフ(折れ線、棒、散布図など)をテンプレート化し、必要に応じて増やしていくのがおすすめです。最初から完璧を目指すと、かえって使いにくくなることがあります。
Q3: チームでテンプレートを共有するには?
Gitリポジトリで管理するのがおすすめです。テンプレートライブラリをGitリポジトリに保存し、pip install git+https://…でインストールできるようにすると便利です。また、社内のPyPIサーバーで配布する方法もあります。
Q4: Seabornのテーマとの違いは?
Seabornには既存のテーマがありますが、カスタマイズが限定的です。plt.rcParamsを使えば、Seabornのテーマをベースにしつつ、企業カラーや独自の設定を追加できます。plt.style.use(‘seaborn-v0_8-whitegrid’)でSeabornのベーステーマを適用してから、plt.rcParams.update()で上書きするのが一般的です。
Q5: Plotlyでもテンプレートは作れますか?
はい、Plotlyにも同様の仕組みがあります。plotly.io.templatesでテンプレートを定義・管理できます。また、fig.update_layout()の設定を関数化することで、Matplotlibと同様のテンプレートライブラリを構築できます。
📝

学習メモ

データ可視化マスター - Step 41

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE