csv2graph サンプル集
csv2graph の主なオプションを実際のデータと合わせて確認できるサンプル集です。各セクションに記載されたコマンドは、サンプルのディレクトリ構成を再現するとそのまま実行できます。
各サンプルの CSV はこのページから直接ダウンロードできます。必要に応じて生成済み画像やスクリプトも合わせて公開しています。
サンプル1: オーバーレイのみ生成する基本例
XRDのデータを使って --no-individual で代表グラフだけを出力する最小構成のサンプルです(単一系列でも個別画像を強制したい場合は --individual を指定してください)。
データの概要
以下のデータを使用します。XRDのデータを想定しています。
1 2 3 4 5 6 7 8 9 10 | |

ディレクトリ構造
1 2 3 4 | |
実行例
以下のタブで Python と CLI の実行例を切り替えられます。
1 2 3 4 5 6 7 8 9 10 | |
1 | |
オプションの説明
no_individual=True,--no-individual: 個別グラフは作らずオーバーレイ画像だけを作成します。
サンプル2: Y 軸を対数表示する
XRD 想定データを --logy で対数スケール表示し、タイトルを指定するサンプルです。
データの概要
以下のデータを使用します。ダイオードのI–V特性のデータを想定しています。
1 2 3 4 5 | |

ディレクトリ構造
1 2 3 | |
実行例
以下のタブで Python と CLI の実行例を切り替えられます。
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 | |
オプションの説明
no_individual=True,--no-individual: 個別グラフは作らずオーバーレイ画像だけを作成します。--logy/logy=True: Y 軸を対数スケールで描画します。
今回はサンプルとして存在しませんが、X軸を対数スケールで描画する時は、
--logx/logx=Trueを使用します。
サンプル3: 軸反転(X/Y)
XRD データを使い、--invert-x や --invert-y で軸を反転する使い方をまとめています。
データの概要
以下のデータを使用します。XRDのデータを想定しています。
1 2 3 4 5 6 7 8 9 10 | |

ディレクトリ構成
実行前のディレクトリ構成
1 2 3 | |
X軸を反転させる例
以下のタブで Python と CLI の実行例を切り替えられます。
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 | |
Y軸を反転させる例
1 2 3 4 5 6 7 8 9 10 11 | |
1 | |
オプションの説明
invert_x=True,--invert-x: 出力画像の X 軸は左右反転します。invert_y=True,--invert-y: 出力画像の Y 軸は上下反転します。no_individual=True: 個別グラフは作らずオーバーレイ画像だけを作成します。
サンプル4: 複数ペアの系列をオーバーレイ
3 関節トルクのデータを複数ペアの X/Y 列で描画し、オーバーレイと個別グラフをまとめて出力します。
データの概要
以下のデータを使用します。3関節(J1–J3)の角度・角速度・トルクを、ほぼ単調増加の角度と線形モデル+微小ノイズで生成した合成時系列データです。
1 2 3 4 5 6 | |




ディレクトリ構成
実行前のディレクトリ構成
1 2 3 | |
実行例
以下のタブで Python と CLI の実行例を切り替えられます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 | |
オプションの説明
--mode overlay: 全系列を1枚のグラフに重ねるモード(x1y1x2y2 相当)を選択します。--x-col 1 --x-col 4 --x-col 7: X 軸に使う列を3つ指定します(0始まりで 2 列目、5 列目、8 列目)。以下のy列と順番にペアリングされます。--y-cols 0 --y-cols 3 --y-cols 6: Y 軸に使う列を3つ指定します(1 列目、4 列目、7 列目)。それぞれx列とペアになり、3本の系列として描画されます。--title "Angle-Dependent Torque": 生成されるグラフのタイトルと出力ファイル名の基礎名を "Angle-Dependent Torque" に設定します。
サンプル5: 単一の X 列と複数 Y 系列
ラマン分光データで 1 本の X 列と複数 Y 系列を組み合わせ、タイトルを変更する例です。
データの概要
以下のデータを使用します。ラマン分光のダミーデータを想定しています。横軸 Raman Shift (cm⁻¹) に対して、Pos0~Pos10 の各測定位置での Intensity (counts)(スペクトル強度)を並べています。
1 2 3 4 5 6 7 | |

ディレクトリ構成
実行前のディレクトリ構成
1 2 3 | |
実行例
以下のタブで Python と CLI の実行例を切り替えられます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 | |
オプションの説明
--x-col 0:X 軸用の列。ひとつ指定すれば、後続の Y 列すべてと自動でペアリングされます。--y-cols 1 … 5:描画したい Y 系列(5 列)を 0 始まりで列番号指定。--no-individual:統合プロットだけを出力。個別 PNG の生成を抑止します。--title: カスタムグラフタイトル
サンプル6: 凡例表示件数を制限
ラマン分光データで --max-legend-items により凡例の表示件数を抑えるサンプルです。
データの概要
以下のデータを使用します。ラマン分光のダミーデータを想定しています。横軸 Raman Shift (cm⁻¹) に対して、Pos0~Pos10 の各測定位置での Intensity (counts)(スペクトル強度)を並べています。
1 2 3 4 5 6 7 | |

ディレクトリ構成
実行前のディレクトリ構成
1 2 3 | |
実行例
以下のタブで Python と CLI の実行例を切り替えられます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 | |
オプションの説明
- -
-x-col 0は X 軸に 0 列目を使う指定。1 度だけ書けば後続のすべての Y 列と自動でペアになります。 --y-cols …で 1〜5 列目の 5 系列を指定します。--no-individualで統合プロットの PNG のみ生成し、個別 PNG をスキップします。--max-legend-items 3で凡例の表示件数を 3 件までに制限します(超えると凡例が非表示になります)。
サンプル7: 多チャンネル充放電データのオーバーレイ
充放電状態ラベルを複数列で扱い、方向列ごとに系列を色分けしながら --output-dir を切り替える高度な例です。
サンプルには生成済み画像を含めていないため、出力例を得るにはコードを実行してください。
データの概要
以下のデータを使用します。充放電特性のダミーデータを想定しています。
1 2 3 4 | |
実行例
以下のタブで Python と CLI の実行例を切り替えられます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 | |
オプションの説明
--output-dir ./custom_output- 生成した PNG/HTML を保存するディレクトリ。指定がないと入力 CSV と同じフォルダになりますが、ここでは ./output にまとめて出力します。
--title "Charge_Rest_Discharge"- グラフのタイトルと、出力ファイル名のベース("Charge_Rest_Discharge.png など)を設定します。
--mode overlay- すべての系列を 1 枚に重ね描きするモード。旧 CLI の x1y1x2y2 と同じで、複数の X/Y 列を一対一にペアリングします。
--x-col 1--x-col 7 … 43- 横軸に使う列番号を列挙します(0 始まり)。ここでは 8 本の系列があり、列 1,7,13,…,43 がそれぞれの X 軸として使われます。CLI ではオプションを列数ぶん繰り返して 指定します。
--y-cols 5 --y-cols 11 … 47- 縦軸に使う列番号。X と同じ順番で 8 本指定し、列 5,11,17,…,47 を Y 系列として描画します。x_col と y_cols は位置対応でペアになります。
--direction-cols 0,--direction-cols 6 … 42- 各 Y 系列に対応する「方向」列を指定します。列 0,6,12,…,42 には例えば Charge / Discharge などの状態ラベルが入っている想定で、その値ごとに線色を変えたり、セグ メントを分けたりします。系列ごとに違う方向列を指定したい場合は、Y 系列と同じ回数このオプションを繰り返します。
--max-legend-items 5- 凡例に表示する項目数の上限。方向や系列が多い場合、6 件目以降の凡例を自動的に非表示にしてプロットを読みやすくします。
サンプル8: 凡例の横に補足情報を表示
--legend-info で凡例付近にメタ情報を追記するラマン分光データの例です。
データの概要
ラマン分光のダミーデータを想定しています。横軸 Raman Shift (cm⁻¹) に対して、Pos0~Pos10 の各測定位置での Intensity (counts)(スペクトル強度)を並べています。
1 2 3 4 5 6 7 | |

ディレクトリ構成
実行前のディレクトリ構成
1 2 3 | |
実行例
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 | |
オプションの説明
legend_info: 凡例枠の近く(もしくは右上)に任意テキストを追記します。複数行は\nで改行できます。no_individual=True: オーバーレイ画像のみを生成し、個別プロットを省略します。
サンプル9: グリッド線の表示
XRD データで --grid を有効にし、読み取りやすさを高めるサンプルです。
データの概要
サンプル:XRD 強度データを使って、グリッド線表示オプションを紹介します。
1 2 3 4 | |

ディレクトリ構成
実行前のディレクトリ構成
1 2 3 4 | |
実行例
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 | |
オプションの説明
grid=True,--grid: プロットに縦横のグリッド線を表示します。ピーク位置や値の読み取りがしやすくなります。no_individual=True: 個別グラフを出力せず、オーバーレイ画像のみ生成します。
サンプル10: 表示範囲を絞り込む (xlim/ylim)
XRD データで --xlim と --ylim を指定してピーク付近だけを拡大する例です。
データの概要
サンプル:XRD 強度データを使って、表示範囲を --xlim / --ylim で絞り込む方法を紹介します。
1 2 3 4 | |

ディレクトリ構成
実行前のディレクトリ構成
1 2 3 4 | |
実行例
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 | |
オプションの説明
--xlim <min> <max>,xlim=(<min>, <max>): X 軸の表示範囲を指定します(単位は CSV の X 列と同じ)。例では 15°〜30° の 2θ のみを表示。--ylim <min> <max>,ylim=(<min>, <max>): Y 軸の表示範囲を指定します(単位は縦軸の列と同じ)。例では 180〜240 counts の強度のみを表示。--no-individual: 個別グラフを生成せず、オーバーレイ画像のみ出力します。
表示範囲を絞ることで、ピーク付近の詳細を拡大表示したり、ノイズを除いた視認性を高めたりできます。
サンプル11: 代表画像と個別画像の出力先を分ける
--main-image-dir と --output-dir を使って、代表画像と個別画像を別フォルダに保存する例です。
データの概要
サンプル:XRD 強度データを使って、代表画像と個別画像を別ディレクトリに保存する方法を紹介します。
1 2 3 4 | |


ディレクトリ構成
1 2 3 4 | |
実行例
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 | |
実行結果と出力ファイル構成
1 2 3 4 5 6 7 | |
オプションの説明
--main-image-dir: オーバーレイ画像を保存するディレクトリを指定します。デフォルトでは--output-dirと同じ場所になります。--output-dir: 個別プロット(系列ごとの PNG)や HTML 出力を保存するディレクトリを指定します。指定がない場合は入力 CSV と同じフォルダに作成されます。
代表画像と個別画像を別フォルダに分けることで、レポート用の代表図と解析用の細かい図を整理しやすくなります。
サンプル12: Plotly HTML 出力を有効化
--html でインタラクティブな Plotly HTML を生成するサンプルです。
データの概要
サンプル:XRD 強度データを使って、Plotly によるインタラクティブ HTML を有効にする --html オプションを紹介します。
1 2 3 4 | |

ディレクトリ構成
1 2 3 | |
実行例
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 | |
実行後ディレクトリ
1 2 3 4 5 6 | |
オプションの説明
--html: Plotly を使ったインタラクティブな HTML ファイル(*.html)を出力します。生成された HTML はブラウザで開き、マウス操作でズームやホバー表示が可能です。--no-individual: 個別プロットをスキップし、統合プロットのみ生成します(HTML はデフォルトで CSV と同じ出力先に保存されます。必要に応じて--html-output-dirを指定してください)。
インタラクティブ出力を利用するには Plotly ライブラリがインストールされている必要があります。インストールされていないと、以下のようなエラーが出力されます。
1 2 3 | |
サンプル14: 凡例配置ポリシー(legend_policy)の使い分け
12系列・3系列のダミーデータを使い、legend_policy の各値(legacy / auto / inside / outside_right / outside_bottom / hide)で凡例の配置がどう変わるかを比較するサンプルです。オプションの詳細は csvをグラフ化する の「凡例配置ポリシー」セクションを参照してください。
outside_right / outside_bottom では、プロット領域を縮小して凡例スペースを作るのではなく、凡例のサイズに応じてキャンバス側が拡張されます。系列数が多くてもグラフ本体の描画サイズは維持されます。
データの概要
12系列の data.csv と、3系列の data_few.csv を使用します。いずれも単調増加のダミー系列です。
1 2 3 4 | |
- data.csv(12系列)
- data_few.csv(3系列)
準備: ダミーデータの生成
CSV は上記リンクからダウンロードできます。手元で生成する場合は、以下のスクリプトを実行してください(掲載データ・グラフはこのスクリプトで生成したものです)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
1 | |
ディレクトリ構成
1 2 3 4 5 | |
同梱の sample_legend_policy.py を実行すると、以下の全ケースの PNG をまとめて生成できます。以降は各ケースを個別に実行する例です。
ケース1: legacy(従来動作)
legend_policy を指定しない場合のデフォルトです。legend_loc と max_legend_items による従来の凡例制御が維持され、凡例はプロット領域内に描画されます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 | |
ケース2: auto × 3系列(プロット内に表示)
auto は凡例項目数で配置を自動選択します。3系列は legend_outside_threshold(デフォルト8)以下なので、凡例はプロット領域内(inside)に置かれます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 | |
ケース3: auto × 12系列(右外側に自動切り替え)
12系列は legend_outside_threshold=8 を超えるため、auto が凡例を右外側(outside_right)へ自動的に移動します。プロット領域のサイズは維持され、キャンバスが右へ拡張されます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 | |
ケース4: outside_right を強制
項目数に関係なく、凡例を常にプロット右外側へ配置します。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 | |
ケース5: outside_bottom + legend_ncol=4
凡例をグラフ下側に4列で配置します。段数は 列数 = legend_ncol から自動的に決まります(12項目 ÷ 4列 = 3段)。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 | |
ケース6: hide(凡例を表示しない)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 | |
ケース7: auto × max_legend_items 超過(自動非表示)
12系列に対して max_legend_items=5 を指定すると、上限超過により auto が凡例を非表示にします。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 | |
オプションの説明
legend_policy,--legend-policy: 凡例の配置ポリシー。legacy(デフォルト・従来動作)/auto(項目数で自動選択)/inside/outside_right/outside_bottom/hideから選択します。legend_outside_threshold,--legend-outside-threshold:autoがプロット内から右外側配置へ切り替える項目数のしきい値(デフォルト8。この値を超えると切り替え)。legend_ncol,--legend-ncol:outside_bottomの凡例列数(未指定時は3列)。max_legend_items,--max-legend-items: 凡例の最大表示項目数。超過すると凡例が非表示になります(auto以外の明示ポリシーでも適用)。x_col="x",--x-col x: X 軸列を列名で指定。y_colsを省略すると残りの全列が Y 系列になります。
サンプル15: 30系列以上の高密度凡例と自動配置
32系列のダミーデータを使い、凡例項目が非常に多い場合の配置制御を確認するサンプルです。legend_bottom_threshold(デフォルト21)により、21項目以上では auto が凡例をグラフ下側へ自動配置します。
いずれのケースでもグラフ本体(プロット領域)のサイズは維持され、凡例のサイズに応じてキャンバス側が拡張されます。保存された PNG/SVG で凡例が見切れることはありません。
データの概要
32系列の直線データです。各系列は series_i(x) = i + 0.1 × x(x = 0〜10)で完全に再現できます。
1 2 3 4 | |
- data.csv(32系列)
準備: ダミーデータの生成
以下のスクリプトで掲載データと同一の CSV を生成できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 | |
ディレクトリ構成
1 2 3 4 | |
同梱の sample_dense_legend.py を実行すると、以下の全ケースの PNG をまとめて生成できます。
ケース1: auto のデフォルト動作(21項目以上 → 下側配置)
32系列はデフォルトの legend_bottom_threshold=21 以上なので、auto が凡例をグラフ下側へ配置します。列数はデフォルト3列、legend_ncol=8 を指定すると4段に圧縮できます。


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 | |
ケース2: 下側切り替えを無効化して右外側に置く
legend_bottom_threshold=None(CLI では --legend-bottom-threshold 0)を指定すると下側への自動切り替えが無効になり、従来どおり右外側(outside_right)に配置されます。32項目の縦長凡例でも、キャンバスが上下にも拡張されるため見切れません。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 | |
ケース3: legend_outside_threshold の境界動作
右外側への切り替えは「しきい値を超えたら」です。32系列に対してしきい値32なら inside のまま、31なら右外側へ切り替わります(下側切り替えは無効化して確認)。
しきい値32(inside のまま)のグラフは、32項目がプロット内に収まらず溢れる様子を示しています。多系列で
inside相当の配置を使うべきでない実例として掲載しています。


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 | |
ケース4: legend_bottom_threshold の境界動作
下側への切り替えは「しきい値以上」です。32系列に対してしきい値32なら下側へ、33なら右外側になります。


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 | |
ケース5: 配置を強制する(outside_right / outside_bottom)
auto を使わず配置を明示指定する例です。outside_bottom は legend_ncol で列数(=段数)を制御できます。



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 | |
ケース6: 凡例を表示しない(hide / max_legend_items 超過)
hide の明示指定と、max_legend_items=30 を32系列が超過して自動的に非表示になるケースです。出力画像は同等になります。


1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 | |
オプションの説明
legend_bottom_threshold,--legend-bottom-threshold:autoが下側配置へ切り替える項目数のしきい値(デフォルト21。この値以上で切り替え)。Python ではNone、CLI では0以下を指定すると無効化できます。legend_outside_threshold,--legend-outside-threshold:autoが右外側配置へ切り替えるしきい値(この値を超えたら切り替え)。デフォルト値(8 / 21)では「1〜8件 → inside、9〜20件 → outside_right、21件以上 → outside_bottom」となります。legend_ncol,--legend-ncol: 下側配置の列数。項目数 ÷ 列数で段数が決まります(32項目 × 8列 = 4段)。- 外側配置ではプロット領域を維持したままキャンバスが拡張されるため、系列数が多くてもグラフ本体は潰れません。