Plot MultiAxes tutorial/jp

このチュートリアルを始める前に基本チュートリアルを見てください. 本チュートリアルでは多軸のプロットの作成と編集方法について学びます. ここではプロットモジュールをより詳しく学ぶことができます.

多軸プロットの例

上の画像はこれから行う作業で得られるおおまかな結果を示しています. 以降のこのチュートリアルでは以下について学びます：


 * Pythonコンソールからの多軸プロットの作成方法
 * 軸プロパティの編集方法
 * 座標軸が複数ある場合のグリッド/凡例のコントロール方法
 * ラベル、タイトル、凡例の位置の編集方法

データのプロット
前のチュートリアルで行ったのと同様にPythonコンソールまたはマクロを使用してデータのプロットを行います. ただし今回は二つの異なる座標軸に対してデータのプロットを行います.

プロットデータの作成
このサンプルでは3つの関数のプロットを行います. 二つは前のチュートリアルで使用したもの、もう一つは別の多項式です. 多項式の方は変動範囲が他のものと異なるので新しい座標軸が必要です. 次のコマンドで必要なデータ配列を作成します：

import math p = range(0,1001) x = [2.0*xx/1000.0 for xx in p] y = [xx**2.0 for xx in x] t = [tt/1000.0 for tt in p] s = [math.sin(math.pi*2.0*tt) for tt in t] c = [math.cos(math.pi*2.0*tt) for tt in t]

xは0から2まで動き、y関数の最大値は4です. もしこの関数を三角関数と一緒にプロットしようとすれば少なくともひとつの関数は切り詰められるか、おかしな縮尺になってしまいます. 従って多軸のプロットが必要となるのです. FreeCADでの多軸プロットは複数の軸を使ったプロットを行うためのもので同じドキュメントに複数のプロットを作成するためのものではありません.

新しい軸を追加しながらの関数の製図
まずメインの座標軸に対して多項式を製図します. 軸が全て同じサイズの場合にはどの関数をどの軸にプロットするのかは問題になりませんが（今回のように）異なるサイズの軸がある場合にはメインの軸が最大になるようにする必要があります（その軸が白い背景を持つからです）. これを行うために必要なのは次のコマンドを実行することだけです.

import Plot Plot.plot(x,y,r"$x^2$")

このサンプルでは凡例用の系列ラベルを直接設定します. Pythonが特殊文字の変換を試みないようにラベル文字列には先頭にrを付ける点に注意してください（LaTeXの文法では\マークがよく使われるのです）.

さて、これで新しい軸を作成して三角関数のプロットを行うことができます. FreeCADのプロットモジュールでは新しい座標軸を作成するとその軸がアクティブ化され、新しく行われたプロットはその軸に関連付けられます.

Plot.addNewAxes Plot.plot(t,s,r"$\sin\left( 2 \pi t \right)$") Plot.plot(t,c,r"$\cos\left( 2 \pi t \right)$")

場合によっては軸の目盛線が重なったり、曲線が同じ色になるなどおかしなプロットになる場合があります. その場合はFreeCADのプロットモジュールを使用してグラフを修正する必要があります.

軸の設定
FreeCADのプロットモジュールには各軸のプロパティを修正するためのツールが用意されています.

軸設定ツールのアイコン

軸ツールでまずはじめに確認するのはアクティブ軸セレクターです. アクティブな軸は最後の軸ですからそこにアクティブな軸があります. ラベルツールと同様、軸ツールではアクティブな軸を設定することで好きな軸にプロットするデータの追加を行うことができます（軸の追加/削除も可能です）. 今回は三角関数に関連付けられた軸を選択して作業を行いましょう.

寸法スライダーでは水平スライダーを左方向に、垂直スライダーを下方向に動かすことで軸のサイズを小さく出来ます（試してみてください）. また軸の位置を設定することもできます. 上、右に変更、設定します. また二つのオフセットも設定します.

系列の設定
[[Plot_Basic_tutorial/jp|前のチュートリアル]で行った様に系列プロパティを設定します.

グリッドと凡例の表示
[[Plot_Basic_tutorial/jp|前のチュートリアル]で使用したものと同じツールでグリッドと凡例の表示、非表示を行えます. ただし今回の例では二つの異なる軸が存在するので動作が少し異なります.

まずグリッドについてですがそれぞれの軸のセットに対して表示を行うことが可能です. 例えば今、グリッドを表示すると三角関数側のグリッドだけが表示されます. 多項式関数のプロットのグリッドを表示するためにはグリッドツールを使用する前に（軸設定ツールを使用して）アクティブな軸を0に変更しなければなりません（このツールを二回押す必要がある場合もあります）.

次に凡例についてですが凡例は両方の軸で同じ物になります. 従って好きな方の軸を選択して凡例を表示することができますが、大きな方の軸（今回だと0）を使用することを強くお勧めします. なぜなら位置がこの軸の座標に対して設定されるためです. 凡例を表示した際におかしな位置に表示されますがこの問題については後で修正します.

軸ラベルの設定
前のチュートリアル]で使用したものと同じツールで軸ラベルの設定を行うことができ、違いは複数の軸があるということだけです. 軸ラベルは通常、各軸ごとに設定されているので特に異なる点はありませんが[[Plot_Module|FreeCADのプロットモジュール を使えば軸に対してもタイトルの設定が行えます. 今回はメインの軸にタイトルを設定したいだけなので次のように設定します：

軸 0: 軸 1:
 * Title = Multiaxes example
 * X Label = $x$
 * Y Label = $\mathrm{f} \left( x \right)$
 * X Label = $t$
 * Y Label = $\mathrm{f} \left( t \right)$

タイトル以外にはフォントサイズ20、タイトルにはフォントサイズ24を設定します. 凡例が表示されるとタイトルの位置がおかしく、二番目の軸セットと重なっているので修正を行う必要があります.

要素位置の設定
FreeCADのプロットモジュール ではタイトル、ラベル、凡例といった複数のプロット要素の位置を設定するためのツールが用意されています.

位置エディターのアイコン

ツールを実行すると編集可能な全ての要素のリストが表示されます. タイトル要素は凡例と同様、両方の方向に移動できますが軸ラベルは軸方向だけにしか動かすことができません. 軸0のタイトルを選択して(0.24,1.01)に移動させましょう. それが終わったら凡例を選択して位置の調整をしてください. また凡例ラベルのフォントサイズも大きくしておきましょう.

プロットの保存
これで作業物を保存できます. やり方を思い出せない場合は前のチュートリアルを見てください.