FreeCAD-Doc/localwiki/Plot_MultiAxes_tutorial-jp.html
2018-07-19 18:47:02 -05:00

119 lines
14 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><title>Plot MultiAxes tutorial/jp</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Plot MultiAxes tutorial/jp</h1></div>
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="mw-parser-output"><p>このチュートリアルを始める前に<a href="https://www.freecadweb.org/wiki/index.php?title=Plot_Basic_tutorial/jp" title="Plot Basic tutorial/jp">基本チュートリアル</a>を見てください。本チュートリアルでは多軸のプロットの作成と編集方法について学びます。ここでは<a href="Plot_Module.html" title="Plot Module">プロットモジュール</a>をより詳しく学ぶことができます。
</p>
<div class="center"><div class="floatnone"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Plot_MultiAxes_Example.png" class="image" title="多軸プロットの例"><img alt="多軸プロットの例" src="600px-Plot_MultiAxes_Example.png" width="600" height="275" srcset="/wiki/images/thumb/2/2f/Plot_MultiAxes_Example.png/900px-Plot_MultiAxes_Example.png 1.5x, /wiki/images/2/2f/Plot_MultiAxes_Example.png 2x" /></a></div></div>
<center><span style="font-variant:small-caps">多軸プロットの例</span></center>
<p>上の画像はこれから行う作業で得られるおおまかな結果を示しています。以降のこのチュートリアルでは以下について学びます:
</p>
<ul><li> Pythonコンソールからの多軸プロットの作成方法</li>
<li> 軸プロパティの編集方法</li>
<li> 座標軸が複数ある場合のグリッド/凡例のコントロール方法</li>
<li> ラベル、タイトル、凡例の位置の編集方法</li></ul>
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#.E3.83.87.E3.83.BC.E3.82.BF.E3.81.AE.E3.83.97.E3.83.AD.E3.83.83.E3.83.88"><span class="tocnumber">1</span> <span class="toctext">データのプロット</span></a>
<ul>
<li class="toclevel-2 tocsection-2"><a href="#.E3.83.97.E3.83.AD.E3.83.83.E3.83.88.E3.83.87.E3.83.BC.E3.82.BF.E3.81.AE.E4.BD.9C.E6.88.90"><span class="tocnumber">1.1</span> <span class="toctext">プロットデータの作成</span></a></li>
<li class="toclevel-2 tocsection-3"><a href="#.E6.96.B0.E3.81.97.E3.81.84.E8.BB.B8.E3.82.92.E8.BF.BD.E5.8A.A0.E3.81.97.E3.81.AA.E3.81.8C.E3.82.89.E3.81.AE.E9.96.A2.E6.95.B0.E3.81.AE.E8.A3.BD.E5.9B.B3"><span class="tocnumber">1.2</span> <span class="toctext">新しい軸を追加しながらの関数の製図</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-4"><a href="#.E3.83.97.E3.83.AD.E3.83.83.E3.83.88.E3.81.AE.E8.A8.AD.E5.AE.9A"><span class="tocnumber">2</span> <span class="toctext">プロットの設定</span></a>
<ul>
<li class="toclevel-2 tocsection-5"><a href="#.E8.BB.B8.E3.81.AE.E8.A8.AD.E5.AE.9A"><span class="tocnumber">2.1</span> <span class="toctext">軸の設定</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="#.E7.B3.BB.E5.88.97.E3.81.AE.E8.A8.AD.E5.AE.9A"><span class="tocnumber">2.2</span> <span class="toctext">系列の設定</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="#.E3.82.B0.E3.83.AA.E3.83.83.E3.83.89.E3.81.A8.E5.87.A1.E4.BE.8B.E3.81.AE.E8.A1.A8.E7.A4.BA"><span class="tocnumber">2.3</span> <span class="toctext">グリッドと凡例の表示</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="#.E8.BB.B8.E3.83.A9.E3.83.99.E3.83.AB.E3.81.AE.E8.A8.AD.E5.AE.9A"><span class="tocnumber">2.4</span> <span class="toctext">軸ラベルの設定</span></a></li>
<li class="toclevel-2 tocsection-9"><a href="#.E8.A6.81.E7.B4.A0.E4.BD.8D.E7.BD.AE.E3.81.AE.E8.A8.AD.E5.AE.9A"><span class="tocnumber">2.5</span> <span class="toctext">要素位置の設定</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-10"><a href="#.E3.83.97.E3.83.AD.E3.83.83.E3.83.88.E3.81.AE.E4.BF.9D.E5.AD.98"><span class="tocnumber">3</span> <span class="toctext">プロットの保存</span></a></li>
</ul>
</div>
<h2><span class="mw-headline" id=".E3.83.87.E3.83.BC.E3.82.BF.E3.81.AE.E3.83.97.E3.83.AD.E3.83.83.E3.83.88">データのプロット</span></h2>
<p><a href="https://www.freecadweb.org/wiki/index.php?title=Plot_Basic_tutorial/jp" title="Plot Basic tutorial/jp">前のチュートリアル</a>で行ったのと同様にPythonコンソールまたは<a href="https://www.freecadweb.org/wiki/index.php?title=Macros/jp" title="Macros/jp">マクロ</a>を使用してデータのプロットを行います。ただし今回は二つの異なる座標軸に対してデータのプロットを行います。
</p>
<h3><span class="mw-headline" id=".E3.83.97.E3.83.AD.E3.83.83.E3.83.88.E3.83.87.E3.83.BC.E3.82.BF.E3.81.AE.E4.BD.9C.E6.88.90">プロットデータの作成</span></h3>
<p>このサンプルでは3つの関数のプロットを行います。二つは<a href="https://www.freecadweb.org/wiki/index.php?title=Plot_Basic_tutorial/jp" title="Plot Basic tutorial/jp">前のチュートリアル</a>で使用したもの、もう一つは別の多項式です。多項式の方は変動範囲が他のものと異なるので新しい座標軸が必要です。次のコマンドで必要なデータ配列を作成します:
</p>
<pre>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]
</pre>
<p><i>x</i>は0から2まで動き、<i>y</i>関数の最大値は4です。もしこの関数を三角関数と一緒にプロットしようとすれば少なくともひとつの関数は切り詰められるか、おかしな縮尺になってしまいます。従って多軸のプロットが必要となるのです。FreeCADでの多軸プロットは複数の軸を使ったプロットを行うためのもので同じドキュメントに複数のプロットを作成するためのものではありません。
</p>
<h3><span class="mw-headline" id=".E6.96.B0.E3.81.97.E3.81.84.E8.BB.B8.E3.82.92.E8.BF.BD.E5.8A.A0.E3.81.97.E3.81.AA.E3.81.8C.E3.82.89.E3.81.AE.E9.96.A2.E6.95.B0.E3.81.AE.E8.A3.BD.E5.9B.B3">新しい軸を追加しながらの関数の製図</span></h3>
<p>まずメインの座標軸に対して多項式を製図します。軸が全て同じサイズの場合にはどの関数をどの軸にプロットするのかは問題になりませんが(今回のように)異なるサイズの軸がある場合にはメインの軸が最大になるようにする必要があります(その軸が白い背景を持つからです)。これを行うために必要なのは次のコマンドを実行することだけです。
</p>
<pre>import Plot
Plot.plot(x,y,r"$x^2$")
</pre>
<p>このサンプルでは凡例用の系列ラベルを直接設定します。Pythonが特殊文字の変換を試みないようにラベル文字列には先頭に<i>r</i>を付ける点に注意してください(<a rel="nofollow" class="external text" href="http://www.latex-project.org">LaTeX</a>の文法では<i>\</i>マークがよく使われるのです)。
</p><p>さて、これで新しい軸を作成して三角関数のプロットを行うことができます。<a href="Plot_Module.html" title="Plot Module">FreeCADのプロットモジュール</a>では新しい座標軸を作成するとその軸がアクティブ化され、新しく行われたプロットはその軸に関連付けられます。
</p>
<pre>Plot.addNewAxes()
Plot.plot(t,s,r"$\sin\left( 2 \pi t \right)$")
Plot.plot(t,c,r"$\cos\left( 2 \pi t \right)$")
</pre>
<p>場合によっては軸の目盛線が重なったり、曲線が同じ色になるなどおかしなプロットになる場合があります。その場合は<a href="Plot_Module.html" title="Plot Module">FreeCADのプロットモジュール</a>を使用してグラフを修正する必要があります。
</p>
<h2><span class="mw-headline" id=".E3.83.97.E3.83.AD.E3.83.83.E3.83.88.E3.81.AE.E8.A8.AD.E5.AE.9A">プロットの設定</span></h2>
<h3><span class="mw-headline" id=".E8.BB.B8.E3.81.AE.E8.A8.AD.E5.AE.9A">軸の設定</span></h3>
<p><a href="Plot_Module.html" title="Plot Module">FreeCADのプロットモジュール</a>には各軸のプロパティを修正するためのツールが用意されています。
</p>
<div class="center"><div class="floatnone"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Plot_Axes.png" class="image" title="軸設定ツールのアイコン"><img alt="軸設定ツールのアイコン" src="Plot_Axes.png" width="64" height="64" /></a></div></div>
<center><span style="font-variant:small-caps">軸設定ツールのアイコン</span></center>
<p>軸ツールでまずはじめに確認するのはアクティブ軸セレクターです。アクティブな軸は最後の軸ですからそこにアクティブな軸があります。ラベルツールと同様、軸ツールではアクティブな軸を設定することで好きな軸にプロットするデータの追加を行うことができます(軸の追加/削除も可能です)。今回は三角関数に関連付けられた軸を選択して作業を行いましょう。
</p><p>寸法スライダーでは水平スライダーを左方向に、垂直スライダーを下方向に動かすことで軸のサイズを小さく出来ます(試してみてください)。また軸の位置を設定することもできます。上、右に変更、設定します。また二つのオフセットも設定します。
</p>
<h3><span class="mw-headline" id=".E7.B3.BB.E5.88.97.E3.81.AE.E8.A8.AD.E5.AE.9A">系列の設定</span></h3>
<p>[[Plot_Basic_tutorial/jp|前のチュートリアル]で行った様に系列プロパティを設定します。
</p>
<h3><span class="mw-headline" id=".E3.82.B0.E3.83.AA.E3.83.83.E3.83.89.E3.81.A8.E5.87.A1.E4.BE.8B.E3.81.AE.E8.A1.A8.E7.A4.BA">グリッドと凡例の表示</span></h3>
<p>[[Plot_Basic_tutorial/jp|前のチュートリアル]で使用したものと同じツールでグリッドと凡例の表示、非表示を行えます。ただし今回の例では二つの異なる軸が存在するので動作が少し異なります。
</p><p>まずグリッドについてですがそれぞれの軸のセットに対して表示を行うことが可能です。例えば今、グリッドを表示すると三角関数側のグリッドだけが表示されます。多項式関数のプロットのグリッドを表示するためにはグリッドツールを使用する前に軸設定ツールを使用してアクティブな軸を0に変更しなければなりませんこのツールを二回押す必要がある場合もあります
</p><p>次に凡例についてですが凡例は両方の軸で同じ物になります。従って好きな方の軸を選択して凡例を表示することができますが、大きな方の軸今回だと0を使用することを強くお勧めします。なぜなら位置がこの軸の座標に対して設定されるためです。凡例を表示した際におかしな位置に表示されますがこの問題については後で修正します。
</p>
<h3><span class="mw-headline" id=".E8.BB.B8.E3.83.A9.E3.83.99.E3.83.AB.E3.81.AE.E8.A8.AD.E5.AE.9A">軸ラベルの設定</span></h3>
<p>[[Plot_Basic_tutorial/jp|前のチュートリアル]で使用したものと同じツールで軸ラベルの設定を行うことができ、違いは複数の軸があるということだけです。軸ラベルは通常、各軸ごとに設定されているので特に異なる点はありませんが<a href="Plot_Module.html" title="Plot Module">FreeCADのプロットモジュール</a> を使えば軸に対してもタイトルの設定が行えます。今回はメインの軸にタイトルを設定したいだけなので次のように設定します:
</p><p><b>軸 0:</b>
</p>
<ul><li> Title = Multiaxes example</li>
<li> X Label = $x$</li>
<li> Y Label = $\mathrm{f} \left( x \right)$</li></ul>
<p><b>軸 1:</b>
</p>
<ul><li> X Label = $t$</li>
<li> Y Label = $\mathrm{f} \left( t \right)$</li></ul>
<p>タイトル以外にはフォントサイズ20、タイトルにはフォントサイズ24を設定します。凡例が表示されるとタイトルの位置がおかしく、二番目の軸セットと重なっているので修正を行う必要があります。
</p>
<h3><span class="mw-headline" id=".E8.A6.81.E7.B4.A0.E4.BD.8D.E7.BD.AE.E3.81.AE.E8.A8.AD.E5.AE.9A">要素位置の設定</span></h3>
<p><a href="Plot_Module.html" title="Plot Module">FreeCADのプロットモジュール</a> ではタイトル、ラベル、凡例といった複数のプロット要素の位置を設定するためのツールが用意されています。
</p>
<div class="center"><div class="floatnone"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Plot_Positions.png" class="image" title="位置エディターのアイコン"><img alt="位置エディターのアイコン" src="Plot_Positions.png" width="64" height="64" /></a></div></div>
<center><span style="font-variant:small-caps">位置エディターのアイコン</span></center>
<p>ツールを実行すると編集可能な全ての要素のリストが表示されます。タイトル要素は凡例と同様、両方の方向に移動できますが軸ラベルは軸方向だけにしか動かすことができません。軸0のタイトルを選択して(0.24,1.01)に移動させましょう。それが終わったら凡例を選択して位置の調整をしてください。また凡例ラベルのフォントサイズも大きくしておきましょう。
</p>
<h2><span class="mw-headline" id=".E3.83.97.E3.83.AD.E3.83.83.E3.83.88.E3.81.AE.E4.BF.9D.E5.AD.98">プロットの保存</span></h2>
<p>これで作業物を保存できます。やり方を思い出せない場合は<a href="https://www.freecadweb.org/wiki/index.php?title=Plot_Basic_tutorial/jp" title="Plot Basic tutorial/jp">前のチュートリアル</a>を見てください。
</p>
</div>
</div><div class="printfooter">
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Plot_MultiAxes_tutorial/jp&amp;oldid=15327">http://www.freecadweb.org/wiki/index.php?title=Plot_MultiAxes_tutorial/jp&amp;oldid=15327</a>"</div>
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
</body></html>