originplot について
外部 Python から Origin と OriginPro の作図を自動化するスキルです。研究、工学、実験の用途を対象に、Python によるデータ処理や一括実行と、Origin テンプレートによる描画・書き出しを分けます。
主な機能
- 01外部 Python から Origin を自動操作
- 02データを取り込み Origin オブジェクトに割り当て
- 03仕様に基づく作図と一括生成
- 04Origin グラフテンプレートの適用
- 05図の書き出しと OPJU プロジェクトの保存
活用シーン
- 01CSV や NumPy データから論文用の図を生成
- 02複数ファイルから図を一括作成
- 03手作業の Origin 作図をスクリプト化
- 04図を書き出し編集可能な OPJU プロジェクトを保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ deliuou/ originplot-skill --skill originplotインストール後、Claude Code で/originplotを入力して読み込まれたか確認します。
同梱ファイルexamples/any_figure_demo.yamlFIGURESPEC_PROTOCOL.md
詳細
originplot スキル
0. スキルの概要
スキル名: originplot
別名: originpro-external-plotting
中国語名: OriginPro 外部 Python 自动绘图 Skill
主な対象: 科学、工学、実験、または出版品質の作図において、外部 Python を使って Origin / OriginPro を操作したい方。
基本的な考え方: OriginPro は Python で制御する出版品質の描画エンジンとして扱い、主要な数値計算エンジンとはしません。
一般的なワークフロー:
Numerical computation / experiment
-> standardized data file
-> Python data adapter
-> originpro automation layer
-> Origin workbook / worksheet / matrix
-> Origin graph template
-> exported figure and saved OPJU project
1. このスキルを使用する場面
ユーザーが次のことを希望する場合に、このスキルを使用します。
- 外部 Python 環境から
originproを使用する。 - Python からプログラムで Origin / OriginPro を操作する。
- CSV、DAT、TXT、Excel、または NumPy のデータを Origin に自動でインポートする。
- 多数のデータファイルから Origin の図を一括生成する。
- Origin のグラフテンプレートを自動で適用する。
- Origin から PNG、TIFF、PDF、EPS、SVG、またはその他の出版用図をエクスポートする。
- Origin プロジェクト
.opjuを自動で保存する。 - 手動の Origin 作図ワークフローを再利用可能なスクリプトに変換する。
- 外部 Python と OriginPro の自動化に関する問題をデバッグする。
- OriginPro を中心とする再利用可能な作図ワークフローを設計する。
- OriginPro を使って Nature 風、または一流学術誌向けの科学図を作成する。
- GraphPage / GraphLayer / Plot を中心とする、あらゆる図に対応する汎用的な制御アーキテクチャを設計する。
FigureSpecなどの宣言型設定を使って作図を制御する。
2. 対象範囲と対象外
このスキルで行うこと
- 外部 Python と OriginPro を組み合わせた作図アーキテクチャを設計します。
- Origin 自動化用の再利用可能な Python コードのひな形を提供します。
- Worksheet、Matrix、GraphPage、GraphLayer、テンプレートベースの作図から適切な方式を選ぶ支援をします。
- 折れ線グラフ、散布図、グループ化プロット、ヒートマップ、マトリックスプロット、等高線図、一括プロットを生成します。
- 推奨するスタイル設定方法として、Origin テンプレートを使用します。
- Nature 風、論文掲載可能、一流学術誌向けの図では、埋め込みのパレット/スタイルルールを必須とします。
- 図のエクスポートと
.opjuプロジェクトの保存を支援します。 - 計算、データ準備、作図、エクスポートを明確に分離できるよう支援します。
- 一般的な
originpro自動化エラーのデバッグを支援します。 - 任意の図に対応する汎用的な階層制御モデルを定義します。
- エージェントが一貫した方法で図を生成できるよう、宣言型の
FigureSpec/LayerSpec/PlotSpecプロトコルを定義します。
このスキルで行わないこと
- 大規模な数値シミュレーションの主要エンジンとして Origin を使用すること。
- 計算負荷の高い処理について、Fortran / C++ / Python / MATLAB / HPC のワークフローを置き換えること。
- 公式の外部パッケージが Windows とローカルの Origin インストールを必要とする場合に、WSL/Linux から
originproを直接呼び出すことを推奨すること。 - Origin テンプレートの方が適切な場合に、すべてのビジュアルスタイルを Python にハードコードすること。
originproを matplotlib の代替として扱うこと。これは Origin への自動化ブリッジです。
3. 留意すべき外部情報
安定した基本原則:
originproは、Origin ソフトウェアと連携するための高水準 Python API です。- 外部の
originproは、Origin Automation Server / COM を介して Origin を制御します。 - Origin のデータオブジェクトの読み取り、書き込み、変更、グラフの作成、グラフのエクスポートが可能です。
- 外部の
originproは、ローカルに Origin をインストールした Windows 上の Python から制御することを想定しています。 - Origin は描画およびテンプレートエンジンとして、Python はオーケストレーション層として扱います。
必要に応じて含める公式リファレンスへのリンク:
https://www.originlab.com/doc/ExternalPython
https://www.originlab.com/doc/ExternalPython/External-Python-Code-Samples
https://www.originlab.com/doc/python
https://www.originlab.com/doc/python/Examples/Graphing
https://www.originlab.com/doc/python/Examples/Origin-Python-Data-Exchange
https://pypi.org/project/originpro/
API に関する制約: 不明な originpro API を推測してはいけません。API が不明確な場合は、コードを書く前に公式ドキュメントを確認するか、インストール済みパッケージのソースコードを調べてください。確認できない場合は不確実であることを明記し、テンプレートを使った代替方法を使用してください。
4. 最上位アーキテクチャ
すべての OriginPro 自動化ワークフローを、次の層を使って設計します。
1. Computation / acquisition layer
Fortran, C++, Python, MATLAB, lab instruments, simulation, experiment
2. File/data layer
CSV, DAT, TXT, XLSX, NPY, NPZ, HDF5, raw instrument output
3. Python data adapter layer
pandas, numpy, unit conversion, column naming, reshaping, validation
4. Origin data object layer
Workbook, Worksheet, Matrixbook, Matrixsheet
5. Origin graph object layer
GraphPage, GraphLayer, Plot, Axis, Legend, Colormap
6. Template and styling layer
.otpu, .otp, custom graph themes, journal styles
7. Export and archive layer
PNG, TIFF, PDF, EPS, SVG, OPJU, logs
アーキテクチャの原則:
Computation belongs outside Origin.
Data normalization belongs in Python.
Visual style belongs mostly in Origin templates.
Automation and batching belong in Python.
Final figure quality belongs to Origin.
5. 汎用的な図の階層制御モデル
このセクションは、任意の図を制御する場合に必須です。どのような図も、次の制御層に分解する必要があります。
L0 Runtime / Session
L1 Data
L2 Origin Data Object
L3 GraphPage
L4 GraphLayer
L5 Plot / Primitive
L6 Axis / Scale / Tick
L7 Legend / Label / Annotation
L8 Theme / Template / Style
L9 Export / Archive / QA
L0 ランタイム/セッション
制御項目:
- Origin を起動するかどうか。
- 表示モードまたは非表示モード。
- 新規プロジェクトを作成するか、既存プロジェクトに接続するか。
- 例外安全なシャットダウン。
- 出力、テンプレート、ログのディレクトリ。
- Windows Python と WSL から Windows へのブリッジ。
L1 データ
制御項目:
- データソース、スキーマ、単位、意味。
- 欠損値/無効値。
- 並べ替え、グループ化、正規化、再形成、ピボット。
x、y、group、size、error、zなどの意味的な役割。
L2 Origin データオブジェクト
制御項目:
- XY、複数 Y、グループ化テーブル、棒グラフ/散布図データ、未加工 XYZ 用の
Worksheet。 - 規則格子のヒートマップ、等高線図、画像状データ用の
Matrix。 - データが不規則な場合や、三角形分割方式の等高線描画が必要な場合は Worksheet-XYZ。
判断基準:
Regular 2D field -> Matrix preferred
Tabular XY / grouped data -> Worksheet preferred
Irregular XYZ -> Worksheet XYZ
L3 GraphPage
制御項目:
- 図全体のキャンバス。
- 単一パネルまたは複数パネルのレイアウト。
- ページサイズ、余白、パネル間隔。
- 共通の凡例または共通のカラーバーの方針。
L4 GraphLayer
制御項目:
- 各パネル/座標系。
- レイヤーの位置とサイズ。
- レイヤー内に配置するプロット。
- レイヤーごとの軸タイトル、範囲、パネルラベル、共通軸の動作。
L5 プロット/プリミティブ
制御項目:
- 線、散布図、棒グラフ、誤差棒、ヒートマップ、等高線図、面グラフ、曲面図、箱ひげ図、バイオリンプロット、バブル。
- データフィールドから視覚的チャネルへのマッピング:
x, y, z, color, size, group, error, text
L6 軸/スケール/目盛り
制御項目:
- 軸タイトルと単位。
- 線形/対数スケール。
- 範囲、余白、目盛り、副目盛り、目盛りラベルの書式設定。
- 共通軸。
- 上/右の枠線の表示。
L7 凡例/ラベル/注釈
制御項目:
- 凡例。
- パネルラベル
(a)、(b)、(c)。 - 吹き出し、矢印、テキスト注記、フィッティング方程式、統計マーカー。
- カラーバーのラベル。
L8 テーマ/テンプレート/スタイル
制御項目:
- 全体のタイポグラフィと線幅。
- 意味に基づくカラーパレット。
- 棒グラフの塗りつぶし、マーカー形状、カラーマップ、枠線スタイル。
- Nature や PRL などのジャーナルスタイル。
- 最終的なスタイル設定には Origin のテンプレートを優先してください。
L9 エクスポート/アーカイブ/品質保証
制御項目:
- PNG/PDF/SVG/TIFF/EPS へのエクスポート。
- OPJU の保存。
- クリーンデータのアーカイブ。
- 視覚的な品質保証とファイル存在確認。
共通の制御順序
図を作成するときは、次の順序を使用します。
Data -> Object -> Layout -> Plot -> Axis -> Annotation -> Style -> Export
または、展開すると次のようになります。
1. Define data semantics.
2. Choose the Origin data object.
3. Decide page layout.
4. Decide each layer's role.
5. Map data to plot primitives.
6. Configure axes.
7. Add legend/labels/annotations.
8. Apply theme/template.
9. Export and run QA.
6. あらゆる図の制御プレーン
任意の図をどのように制御するか尋ねられた場合は、次の4つのプレーンを使って回答してください。
6.1 構造制御
回答する質問:
- パネルはいくつか。
- ページレイアウトはどうするか。
- どの Origin オブジェクトを使うか。
- 単一ページか複数ページか。
対応先:L2 + L3 + L4
6.2 意味制御
回答する質問:
- 各列は何を意味するか。
- 何を x/y/色/サイズ/誤差にマッピングするか。
- 比較の次元となる変数はどれか。
対応先:L1 + L5
6.3 視覚制御
回答する質問:
- フォント、線幅、色、枠線、凡例スタイル、カラーマップ。
対応先:L6 + L7 + L8
6.4 配布制御
回答する質問:
- 何をエクスポートするか。
- OPJU を保存するか。
- クリーンデータをアーカイブするか。
- 品質保証を実施するか。
対応先:L9
7. FigureSpec プロトコルの概要
任意の図の生成をエージェントに扱いやすくするには、宣言型の設定プロトコルを使用します。
FigureSpec
|- RuntimeSpec
|- DataSpec[]
|- PageSpec
|- LayerSpec[]
|- PlotSpec[]
|- StyleSpec
|- ExportSpec
設計原則:
FigureSpec describes WHAT to build.
Python/originpro executor decides HOW to build it.
プロトコルの全容については、関連ドキュメント FIGURESPEC_PROTOCOL.md を参照してください。
8. 推奨プロジェクト構成
originplot_project/
├── data/
│ ├── raw/
│ ├── processed/
│ └── README.md
├── specs/
│ ├── figure_2x2_nature.yaml
│ └── figure_single_heatmap.yaml
├── templates/
│ ├── line_basic.otpu
│ ├── line_multi_component.otpu
│ ├── scatter_basic.otpu
│ ├── heatmap_diverging.otpu
│ ├── contour_basic.otpu
│ ├── journal_style.otpu
│ └── nature_style.otpu
├── scripts/
│ ├── origin_session.py
│ ├── data_loader.py
│ ├── data_validator.py
│ ├── style_nature.py
│ ├── plot_line.py
│ ├── plot_scatter.py
│ ├── plot_heatmap.py
│ ├── plot_multipanel.py
│ ├── figurespec_executor.py
│ ├── batch_export.py
│ └── config.py
├── output/
│ ├── figures/
│ ├── opju/
│ ├── data/
│ └── logs/
└── README.md
9. データ型の判断ツリー
9.1 XY または複数 Y の曲線
Worksheet を使用します。
9.2 XYZ データ
規則格子の場合は Matrix に変換します。それ以外の場合は Worksheet XYZ を使用します。
9.3 Matrix データ
Matrixsheet を使用します。
9.4 バッチプロット
ファイルループと共通テンプレートを使用し、実行ごとに1つの OPJU アーカイブを作成します。
10. テンプレート戦略
推奨する最終ワークフロー:
1. Manually create one ideal graph in Origin.
2. Save it as .otpu.
3. Let Python inject data and export.
次のように分けてください。
Origin template controls:
fonts, line widths, colors, legends, axis style, page size
Python controls:
data, mapping, graph names, variable labels, output paths, batching
11. Nature スタイルの必須ルール
ユーザーが明示的に別の指定をしない限り、Nature スタイルの出力には以下のセマンティックカラーパレットを使用します。
NATURE_PALETTE = {
"blue_main": "#0F4D92",
"blue_secondary": "#3775BA",
"green_1": "#DDF3DE",
"green_2": "#AADCA9",
"green_3": "#8BCF8B",
"red_1": "#F6CFCB",
"red_2": "#E9A6A1",
"red_strong": "#B64342",
"neutral_light": "#CFCECE",
"neutral_mid": "#767676",
"neutral_dark": "#4D4D4D",
"neutral_black": "#272727",
"gold": "#FFD700",
"teal": "#42949E",
"violet": "#9A4D8E",
"magenta":"#EA84DD",
}
基本ルール:
- Arial または Helvetica を優先します。
- パネルの境界線を表示したままにします。
- 枠なしの凡例を使用します。
- セマンティックカラーを一貫して使用します。
- 目盛りは少なめにし、デフォルトではグリッドを表示しません。
- データに応じた軸範囲を設定します。
- OPJU と、少なくとも 1 つのベクター形式でのエクスポートを保存します。
(a)、(b)、(c)のようなパネルラベルは、レイアウトが確定してから追加します。
12. インストールガイダンス
pip install originpro pandas numpy pyyaml
外部モードは Windows の Python で実行する必要があります。
13. 標準セッションラッパー
import sys
import originpro as op
def setup_origin(show=True, new_project=True):
def origin_shutdown_exception_hook(exctype, value, traceback):
try:
op.exit()
finally:
sys.__excepthook__(exctype, value, traceback)
if op and getattr(op, "oext", False):
sys.excepthook = origin_shutdown_exception_hook
op.set_show(show)
if new_project:
op.new()
return op
def close_origin(save_path=None):
if save_path:
op.save(save_path)
if getattr(op, "oext", False):
op.exit()
14. このスキルでの応答パターン
プロットに関する依頼に回答する際は、次の構成にします。
1. Data semantics
2. Origin data object choice
3. GraphPage / GraphLayer structure
4. Plot mappings
5. Axis strategy
6. Annotation strategy
7. Style / template strategy
8. Export / OPJU / QA strategy
9. Minimal working code or FigureSpec
15. コードを提示する前のチェックリスト
以下を確認します。
1. Windows Python or WSL/Linux bridge?
2. Local Origin installed?
3. Data format?
4. Data type: XY, multi-Y, XYZ, matrix, batch?
5. Desired output: PNG, PDF, SVG, TIFF, OPJU?
6. Built-in template or custom .otpu?
7. Single figure or batch?
8. Needs Nature style or not?
9. For arbitrary figures: what are page, layer, plot, and annotation responsibilities?
10. Would FigureSpec be more reusable than hard-coded Python?
16. 最終的な設計原則
Use Python to automate.
Use OriginPro to render.
Use templates to standardize.
Use FigureSpec to formalize arbitrary figures.
Use OPJU to preserve editability.