byeGraph_Logo2.gif

English2.png

Topページへ概要&ダウンロード基本的な使い方サンプルデータ
バージョン2.5バグ情報バージョン履歴Q&Aご寄付


Q&A


Q 【数式】関数の不連続点の描画を回避したい(20151018)

A. 例えば、y=1/xの関数では、x=0の近傍ではy=±∞となり、データを線で表すと不連続になってしまいます。 これを防ぐには、下の数式のようにシリアルパラメータ=[,]を使って、関数の定義域を2つに分割して計算します。

%label "y=1/x (1)":"y=1/x (2)"
st=[-3,+0.1]@
sp=[-0.1,+3]@
x=<st:sp:0.01>@
y=1/x

bg_q_a10.png

Q 数式を使って、対数のx軸に等間隔にデータを配置したい(20120203)

A. 周波数特性のグラフを作成する際、xデータの範囲が例えば数Hzから数MHzと広い範囲に及ぶため、x軸には対数軸を用いるのが一般的です。

そして、数式からグラフを作成する場合、次の数式の様に、周波数xをループ変数としてしまうと(x=<1:10000:2>)、下の左のグラフの様に、低い周波数のところでは疎らで、高い周波数のところではとても詰まったグラフになってしまいます(xデータが等間隔で作られているので、対数スケール上ではこの様になります)。また、データ数も、この例の場合5000個と多くなってしまいます。(さらに、105まで増やすと50000個になります。)

! RCハイパスフィルタ(C=470μF、R=8 Ω)の周波数特性
R=8@
C=470e-6@
x=<1:10000:2>@
y=1/sqrt(1/(2*pi*x*C*R)^2+1)

そこで、次の数式の様に、ループ変数を、周波数xにではなく、周波数 x=10n で表した場合の指数部 n にします注1)n=<0:4:0.05>)。こうすることで、log(x)はnの一次関数となり注2)、対数スケール上で、等間隔に配置されたxデータを算出できます。また、当然データ数も少なく抑えられます(この例では81個)。

     :
n=<0:4:0.05>@
x=10^n@
     :

注1)
ループ変数には、変数xだけでなく、ユーザ定義変数も割り当てることができます。

注2)
x=10n
log(x) = log(10n) (両辺の対数をとる)
log(x) = n   (log(x)はnの一次関数となる)

bg_q_a7.png

(120224追加)参考までに、xデータを対数的に変化させつつ、1ディケードあたりのデータ数を同じにするためには、数式を次の様にします。

R=8@
C=470e-6@
n=<0:36:1>@
_M0=ginit<1>@ !dx
_M1=ginit<1>@ !x
x=_M1@
_M0=switch(_M1≠10,_M0:_M0*10)@
_M0=switch(_M1≠100,_M0:_M0*10)@
_M0=switch(_M1≠1000,_M0:_M0*10)@
_M1(+)=_M0@
y={1/sqrt(1/(2*pi*x*C*R)^2+1)}

bg_q_a9.png

Q 帯グラフを作成したい

A. バージョン1.5より、「積み上げ型棒ブラフ」と「グラフの右90度回転」が新しい機能として加わりました。これらの機能を使って、帯グラフの様なグラフを作成する事ができます。作成の手順は以下の通りです。

  • %xstrings (XSTRINGS) ヘッダを指定して、通常の「X軸ラベルが文字列のグラフ」を作成します。
  • グラフ作成後、グラフ属性パネル「シンボル・ライン」で、棒の型を「積み上げ」にします。
  • 「座標軸」に移動し、座標軸の回転の「右に回転」ボタンにチェックを入れます。

なお、X軸ラベルの文字列の中に改行を入れる場合は(複数行で表示する場合は)、あらかじめX軸ラベルの指定で、改行の入る位置に半角スペースを入れ、X軸ラベル全体を「"」で括ります。(「"」で括らなければ、半角スペースがデリミタとして見なされてしまいます。)そして、グラフ作成後に、グラフ属性パネルの「座標軸」の「座標軸ラベル/オプション」で「改行入」を選びます。

bg_column_graph.gif

Q データラベルにスペースを入れたい

A. データヘッダの L ヘッダでデータラベルを指定する場合は、スペース(U+0020)はデリミタとして定義されているため、それをデータラベルに含むことができません。

データラベルは、L ヘッダを用いずに、「表示」シートウィンドウで設定しても構いません。データのシンタックスチェックの後、「表示」シートウィンドウを開いて、暫定のデータヘッダを任意のものに置き換えます。このとき、スペース(U+0020)を含めることができます。

また、グラフの作成後に、グラフ属性パネルの「シンボル・ライン」でデータラベルを変更する事ができます。

(090802改訂)次のバージョン1.8では、L ヘッダーと %label ヘッダーにおいて、ダータラベルをダブルクォテーション「"」で括ることで、スペース等の文字をデータラベルに含めることができます。


Q データのシンタックスエラー(原因の判らない)について

A. ByeGraphの編集フィールドでは、不可視文字(空白文字)の表示は出来ません。このため、一見正しいシンタックスでも、適当でない位置に不可視文字(空白文字)が使われている場合は、その部分でシンタックスエラーが生じます。(空白文字の中で、スペース(U+0020)とタブ(U+0009)のみデリミタ(データの区切り)として使用可能です。例えば、デリミタの位置に、全角のスペース、非改行スペース (U+00A0)などの空白文字が含まれている場合も、シンタックスエラーの原因となります。)

原因が判らないエラーが生じた場合は、上記の理由が考えられますので、一度不可視文字の表示の可能なエディタを使って、不要な不可視文字が含まれていないかどうか、チェックしてみてください。

(081108改訂)バージョン1.6では、「読込み時のフィルター処理」を利用して、非改行スペース (U+00A0)を、通常のスペース(U+0020)に変換できます。この機能は、「追加」でのファイル読込みの他、ドラッグ&ペースト、コピー&ペーストでも利用できます。


Q データファイルの読込み時のエラー(ファイルのエンコードに起因)について

A. データファイル(標準テキスト)の読込みの際に、ファイルのエンコード方式が、環境設定パネルで設定されているエンコード方式に適合していないとエラーとなり、読込みに失敗する事があります。(また、読込みが成功しても、エンコード方式が適合していないと、文字化けする事があります。) ByeGraphには、ファイルのエンコード方式を自動判別する機能はありません。そのため、 この様な場合には、ファイルで使われているエンコード方式を、環境設定パネルで設定する必要があります。

なお、データファイルを他のエディタで開いて、そのデータをドラッグ&ドロップ、もしくはコピー&ペーストで編集フィールドに直接データを挿入する場合は、エンコード方式の違いによる問題は生じません。

(090413改訂)バージョン1.7では、エンコード方式の自動判別機能が追加されています。


Q ドキュメントの拡張子について

A. ByeGraphではドキュメントのバージョン毎にドキュメントの拡張子が異なります。

バージョン 拡張子
1.0/1.2 .byeg
1.3 .bygf
1.4 .byge
1.5 .bygd
1.6 or Later* .bygc

* 1.6以降は同じ拡張子です。

各バージョンのドキュメントは、当該バージョン及びその上位のバージョンのByeGraphから読込むことができます。