テキストオブジェクトとデータや変数のリンク

テキストラベルは、ワークブック、ワークシート、列、セルの値やメタデータ、データファイル情報、さらにはデータ統計など、さまざまなプロジェクト情報を表示するために、静的リテラルテキストや、ランタイム文字列置換を行うLabTalk置換表記文字列のようなシンプルなものにすることができます。

Link to cell.png

軸タイトルや凡例、データポイントラベルのようないくつかのテキストラベルはOriginによって自動的に生成される一方でほかにもテキストまたはデータラベルツールで手動で追加するものもあります。手動で追加するラベルでは置換へのリンクがチェックされているか、テキストオブジェクトダイアログのプログラミングタブにあるレベルが1に設定されていることを確認してください。

Link to SubStitution.png

グラフウィンドウのコンテキスト内では、テキストラベルを2つのグループにまとめることができます。

  • グラフテキストラベル:これには、自動的に生成された軸のタイトルとグラフの凡例、およびテキストツールButton Text Tool.pngで追加されたラベルが含まれます。ここではテキストツールで追加されたラベルについて主に説明します。グラフの凡例または軸タイトルについてはこれらのページをご参照ください。
  • データプロットラベルデータラベルツールまたは作図の詳細のラベルタブを使ってラベルを有効にすることにより、データポイント(単一ポイントまたはデータセット全体)にラべルを適用します。詳細はデータポイントにラベル付けをご参照ください。

テキストラベルの置換ワークシートセル値

テキストラベルでワークシートセルの値を表示する最も簡単な方法はリンクをコピー&ペーストすることです。

  1. ワークシートのセルをクリックし、CTRL + C(または右クリックしてコピー)キーを押します。
  2. テキストツールを使用してテキスト(たとえば、The value of y is:)を作成し、ラベル編集モードで右クリックして、 リンクの貼り付けを選択します。
  3. Originがワークシートセルの置換表記を追加します。

ワークシートのセル値を変更すると、ラベルに表示されている値が変更されます。

貼り付けたリンクはほとんどのユーザにとって適切ですが、ワークシートセルの置換にはいくつかのオプションがあることも理解してもらえるとよいです。

置換が動作するように最初にテキストラベルをクリックして表示されるミニツールバーで置換へのリンクにチェックがあることを確認してください。または、テキストラベル上で右クリックして、プロパティを選択します。プログラミングタブをクリックし、 (%,$)にリンク,置換レベル1と設定し、OKをクリックします。


構文 説明

%(workbookName, Column, row#[, format])

ワークブックでアクティブなシートの列、行
//book1のアクティブなシート、2列 5行を完全精度で
%(Book1,2,5) 
//book1のアクティブなシート、列Bの5行目を, 小数点2桁で
%(Book1,B,5, .2) 
%([workbookName]Sheet, Column, row#[, format]) ワークブックの特定のシートの列、行
//book1のsheet1にある2列、5行を完全精度で
%([Book1]Sheet1,2,5) 

//book1のsheet1にある2列、5行を有効数字3桁で

%([Book1]Sheet1,2,5, *3) 
%(workbookName, @WL, column[row] [,format]) ワークブックでアクティブなシートの列、行
//book1のアクティブなシート、2列 5行を完全精度で
%(Book1, @WL, 2[5])
//book1のアクティブなシート、列Bの5行目を, 小数点2桁で
%(Book1,@WL, B[5], .2)
%([workbookName]sheetName, @WL, column[row] [,format]) ワークブックの特定のシートの列、行
//book1のsheet1にある2列5行を完全精度で
%([Book1]Sheet1,@WL, 2[5]) 
//book1、sheet1、2番目の列、5行目をワークシートセルと同じ表示で
%([Book1]Sheet1,@WL, B[5], W)
%(plotindex, @WT, column, row[, format]) 指定したプロットのソースワークシートまたは列
//第1プロットのワークシート、列F、5行目
%(1, @WT,F,5) 
//2番目のプロットのYデータシート、6列5行小数点2桁で
%(2Y, @WT,6,5, .2) 

Note:

  • この方法の利点は、@WTが参照するワークシート列がソースデータによって識別されることです。グラフテンプレートとして保存して再利用したとき、データセット名が変更されたとしても、このテキストラベルの表示内容は新しいデータを参照して自動で更新します。
  • %(1, @WT,ColIndex,RowIndex)使用して、行列シートの値を参照できます。
  • フォーマットはオプションです。指定しない場合、完全精度になります。Originフォーマットをご覧ください。
  • @WLでは、フォーマットはWにでき、ワークシートのセル形式または列形式を使用します。

次のグラフでは、MM/DD/YYYY 形式のA1セルに含まれる開始日のテキストを示しています。

Text label cell.png

テキストラベルの列ラベル行の値(メタデータ)の置換

データ行セルに加えて、テキストラベルの列ラベル行セルの値を置換できます。再度、置換が動作するように最初にテキストラベルをクリックして表示されるミニツールバーで置換へのリンクにチェックがあることを確認します。または、テキストラベル上で右クリックして、プロパティを選択します。プログラミングタブをクリックし、 (%,$)にリンク,置換レベル1と設定し、OKをクリックします。

必要に応じて、使用できるするシンタックスがいくつかあります。

  • %(PlotIndex, @option[,arguemnt] )
  • %(PlotIndex[PlotDesignChar], @option)
  • %(PlotIndex,@WT,ColIndex, LabelRowChar)

最後のオプションは、列ラベル行の文字(LabelRowChar)を使用します。

サンプル 説明
 %(1, @LD"Mean") 第一プロットの列のユーザ定義パラメータ行の値
 %(1, @LF, B) 第一プロットのB列のフィルタ条件
$(%(2Y, @LC), .2) 第二プロットのY列のコメントを小数点以下2桁で
 %(1X, @WT, 5, D2) 第一プロットのXデータがあるワークシートの5列目の2番目のユーザパラメータ行の値

下図は列CとDからプロットされており、テキストラベルで列 Bのフィルタ条件を示します。

Link to b filter.png


テキストトラベルのデータセット統計の置換

LabTalk関数を使用してデータセット統計を計算し、結果をテキスト ラベルで表示することもできます。再度、置換が動作するように最初にテキストラベルをクリックして表示されるミニツールバーで置換へのリンクにチェックがあることを確認します。または、テキストラベル上で右クリックして、プロパティを選択します。プログラミングタブをクリックし、 (%,$)にリンク,置換レベル1と設定し、OKをクリックします。

シンタックスは、以下の通りです。

$(function(Dataset)[, format])

ここで

  • 関数はデータセットの代わりにスカラー値を返す必要があります (total()、mean() など)。
  • データセットは、データセットまたは範囲変数、プロットまたはワークシート列の文字列レジスターにすることができます。
  • フォーマットはオプションでOriginのフォーマットを参照してください。

次の表では、例としてLabTalk関数 total() を使用します。$( )置換は、計算をオプションのOriginフォーマットで文字列に変換して表示をカスタマイズするために使用されます。

データセット 説明
 %C アクティブデータセットの文字列レジスタ
$(total(%C)) //現在のデータセットの合計
$(total(%C), .2) //現在のデータセットの合計を小数点以下2桁で
 %(plotindex, @D) 指定したプロットのデータセット
$(total(%(1, @D)) //最初のプロットの合計。2Dの場合、Yデータセットを参照
$(total(%(2X, @D)), *3) //2番目のプロットのXデータセットの合計を有効数字3桁で表示
$(total(%(2.1, @D))) //2番目のレイヤの最初のプロットのYデータの合計 
 %(plotindex, @WT, columnNameorIndex) 指定したプロットのデータセット
$(total(%(1, @WT, 5))) //最初のプロットが含まれるワークシートの 5番目の列の合計
$(total(%(2X, @WT, E))) //2番目のXデータが取得されるワークシートの列Eの合計
$(total(%(1, @WT, "Decay 2"))) //最初のプロットのシートの列 (ロングネーム「Decay 2」) の合計
%([book]Sheet, column) ワークシート列置換
$(total(%([book1]1, C )) //book1の1番目のシートのC列の合計
ds または ra データセットまたは範囲変数または式
$(total(ds)) //データセットds={1,2,3};とする
$(total({2,4,6})) //{2,4,6}の合計
$(total(ra), .0) //範囲 ra=[book1]sheet1!B と仮定し、小数点以下0桁で
$(total([book1]1!C[5:0])) //Book1、1シート目、5行目から最後までの範囲列合計

次のテキストラベルは、プロットの合計値を計算します。値は、カンマ区切り文字を使用し、小数点以下0桁でカスタマイズされます。

Text label total.png


テキストトラベルの変数情報の置換

テキストラベルのインプレース編集モードで、右クリックして、挿入: 情報変数(Ctrl+L) を選択してプロットされたデータのファイル、ブック、シート、列情報を挿入できます。

Link to info var.png

右側でブック、シートまたはプロットのXおよびY列ノードを選択します。情報またはラベルタブで挿入する情報を選択します。デフォルトで、置換表記で挿入されます。

Link to info var db.png

テキストトラベルの置換変数値

ワークシートの値を表示するのに加え、テキストラベルに変数値を含めることができます。再度、置換が動作するように最初にテキストラベルをクリックして表示されるミニツールバーで置換へのリンクにチェックがあることを確認します。または、テキストラベル上で右クリックして、プロパティを選択します。プログラミングタブをクリックし、 (%,$)にリンク,置換レベル1と設定し、OKをクリックします。

タイプ サンプル 説明
文字列レジスタ  %X%G.opju 現在のプロジェクトのパスとファイル名を末尾に .opju を付けて表示
文字列変数  %(user$) 文字列user$の内容を表示
数値変数 $(myvalue, .2) 変数 myvalue を小数点以下2桁で表示


サンプル 1.予約語のレジスタを使う

文字列レジスタは、Originで文字列データを処理する手段の1つです。プロジェクトパス%X、プロジェクトファイル名%G、現在のアクティブ データ%Cなどの重要な情報を保持する予約済みのシステム文字列レジスタです。

現在のプロジェクトMYPROJECT.OPJC:\MYFILES\に保存されているとします。

  1. WYSIWYGテキストラベル法を使って、グラフウィンドウのテキストラベルに次のように入力します。
    このプロジェクトは、%X%Gに保存されます。
  2. 入力モードを抜け、ラベルを選択して、右クリックし、オブジェクトのプログラム制御を選びます。
  3. (%,$)にリンク, 置換レベル1にします。
  4. テキストタブで、逐次解釈のチェックボックスにチェックを付けます(これにより "\" は文字として認識されます)。ラベルは、現在のプロジェクトのドライブとパス名を表示します。
    このプロジェクトは、C:\MYFILES\MYPROJECTに保存されます。

逐次解釈オプションの使用に関する詳細は、「オブジェクトプロパティ」ダイアログボックスでの円記号(バックスラッシュ)の利用をご覧ください。

サンプル 2.数値の変換

LabTalkを使用して、作業で使用する変数を定義できます。「変数」と「スコープ」の考え方については、このトピックを確認してください。基本的な数値表記を説明するために、次の簡単な例を紹介します。

  1. Originメニューで次のように操作します。ウィンドウ:スクリプトウィンドウ
  2. スクリプトウィンドウの内部でクリックし、次のように入力します。
    MyVariable=5

    そして、ENTERキーを押します。
  3. プロット操作・オブジェクト作成ツールバーの、テキストツールを選択し、グラフやワークシートの余白部分で次のように入力します。
    MyVariable=$(MyVariable)
  4. テキストラベルを右クリックして、プロパティを選択してプログラミングタブに行き、ダイアログで、(%,$)にリンク, 置換レベル1にセットしてOKをクリックします。これで、テキストラベルには、MyVariableの数値を表示されます。
    MyVariable=5

利用可能なLabTalkの変数を一覧するには、スクリプトウィンドウを開き(ウィンドウ: スクリプトウィンドウ)、ツール: 変数を選ぶか、コマンドラインに"ed"と入力します。

テキストラベルでの数式の解決

Originは、 標準的なWYSIWYGテキスト編集法でのテキスト作成時や「オブジェクトプロパティ」ダイアログボックスでのテキストラベル編集時に置換表記をサポートしています。さらに、この表記を使って、数式を解いてテキストラベルに値を表示することができます。

$(expression)

この置換表記では、テキストラベルが再描画される度に数式が解かれ値が表示されます。 ラベルを移動したり、グラフウィンドウを再描画する度に、テキストラベルは再描画されます。

サンプル.テキストラベルでpiを解く

  1. WYSIWYG編集モードで次のテキストを入力するか、「オブジェクトプロパティ」ダイアログボックスのテキストタブに数式を入力して、OKをクリックします。
    The value of X is $(pi^2)
  2. テキストラベルの上で右クリックし、プロパティ... を選択して、オブジェクトのプログラミング制御 タブに移動します。または、ALTキーを押しながら、テキストラベルをダブルクリックします。
  3. (%,$)にリンク, 置換レベル1にしてOKをクリックします。 ラベルは次のようになります。
    The value of X is 9.8696

標準ツールバーのリフレッシュボタン Button Refresh.pngをクリックして、変更を見ます。

Originを起動すると、プログラムフォルダのORGSYS.CNFというテキストファイルが読み込まれます。このファイルで、スクリプトウィンドウ列値の設定ダイアログでの変数定義と同じように、piの値が定義されています。

const pi = 3.141592653589793

もし、通常使用する数学的な定数がある場合、ユーザファイルフォルダのCONST.CNFでそれを定義すれば、Originを起動するたびに利用可能になります(CNFファイルは、メモ帳などのテキストエディタで編集できます)。

テキストラベルへの日時の追加

日時情報をテキストラベルとしてグラフやワークシートなどに追加するには、いくつかの方法があります。

静的テキストオブジェクトとして

プロット操作・オブジェクト作成ツールバーの日時ボタンButton Date Time.pngをクリックすると、日付と時刻のスタンプをグラフに追加できます。

これは静的なテキストオブジェクトであり、日時ボタンButton Date Time.pngをもう一度クリックしない限り、現在の日付/時刻が保持されることに注意してください。

詳細は、このページをご覧ください。

動的テキストオブジェクトとして

現在の日時をテキストラベルに組み込む方法はいくつかあります。日時ボタンとは異なり、このようなテキストラベルはグラフテンプレートと共に保存でき、ウィンドウ作成の日付と時刻をグラフにスタンプするために使用できます。次の方法のいずれかを使用して作成されたテキストオブジェクトでテンプレートを保存すると、現在の日時のリテラルテキストではなく、ラベルの基になるコードが保存されることに注意してください。

基本的なプロセスはこのようになります。

  1. 以下で説明する日時テキストオブジェクトの追加など、グラフをカスタマイズします。
  2. ユーザファイルフォルダカスタムテンプレートを保存します。
  3. プロットするデータを選択し、作図>マイ テンプレートからカスタムテンプレートを選択します。

LabTalk置換を使用して日時のラベルを追加

@D または @T 構文を使用して、日時ラベルをグラフに追加します。

  1. テキストツールButton Text Tool.pngを選択し、グラフをクリックして、カーソル位置に次のように入力します。
     $(@D, DMM-dd-yyyy HH:mm:ss)
  2. 入力したらテキストオブジェクトをクリックして編集モードを終了します。
  3. テキストオブジェクトを選択し、ミニツールバーの置換へのリンクボタンをクリックします。 OH date time text label DT syntax.png
Note: ここで使用されている特定の日時形式は、あくまで一例です。@D@T のフォーマットについて詳しくは、LabTalkリファレンスのこのセクションを参照してください。

ラベルでLabTalkスクリプトを実行して日時を追加する

この方法は、短いスクリプト行をテキストオブジェクトに追加することで機能します。そのスクリプトはウィンドウオープンでトリガーされるため、グラフが作成された日時でグラフがスタンプされます。

  1. テキストツールButton Text Tool.pngを選択し、グラフをクリックして、カーソル位置に次のように入力します。
    %(dt$)
  2. 入力したらテキストオブジェクトをクリックして編集モードを終了します。
  3. テキストオブジェクト上で右クリックして、プロパティを選択します。
  4. ダイアログでプログラミングタブをクリックし、次の設定を再作成します (テキストタブも次のようになります)。 OH date time text label string var script.png
  5. OK をクリックして、ダイアログを閉じ、現在の日時を与えます。
Note: ここで使用されているOrigin日時関数と日時形式の組み合わせは、ほんの一例です。