2012-03-16 10 views
6

1つの条件:私の質問の中心にある構文要素はPython言語です。しかし、この要素はMatplotlibライブラリによく現れます。これは私が見た唯一のコンテキストです。したがって、一般的なPythonの構文質問であろうと、ライブラリ固有の質問であろうと、私は確信していません。私は、Python言語リファレンスまたはMatplotlibドキュメントの中で何かを見つけることができなかったことを知っています。Matplotlibで頻繁に使用されるPythonの珍しい構文要素

優れたPythonプロットライブラリを使用したり開発したりする人は、Matplotlibは以下の構文パターンを認識します。 (

from matplotlib import pyplot as MPL 

>>> l, = MPL.plot(s, t)  # s & t are ordinary NumPy 1D arrays 

は、この式の左辺の構造は何ですか?そして、

がそれを使用する目的は何ですか?私は

Pythonのに慣れている割り当ての開梱、例えば

>>> a, b = [100, 200] 

私は、また

Pythonの一項目にタプルが時々トンのように表されていることを承知しているのどちらかは、上記の最初の質問への答えである可能性があります。もしそうなら、私はプロットの呼び出しから返された値の最初の要素だけがここで必要である理由をまだ理解していません。

( "l"は小文字の "ell"です;私はこの文字を使用していますが、これはlsが同じ文字で始まるオブジェクトにバインドされているためです)。


いくつかの追加のコンテキスト:

プロットへの呼び出し戻りたLine2Dインスタンスのリスト:

>>> type(l) 
    <class 'matplotlib.lines.Line2D'> 

だから、lはタイプLine2Dのオブジェクトです。一旦lines2Dオブジェクトにバインド

は、この「変数」は、通常のでようmatplotlibのコードで見られる:

>>> l.set_color("orange") 

この式は、プロットウィンドウ内のデータ値を表す線の色を(変更します"プロットライン")

以下はもう1つの例です。 Matelotlibのプロットウィンドウに小さなツールキット/グラフィックスバックエンドに依存しないウィジェットを埋め込む、例えばチェックボックスでオン/オフを切り替えたり、プロットウィンドウに複数のデータ系列が表示されたりするこの「可変コンマ」構造の一般的なシナリオを示しています。

以下のコードでは、簡単なMatplotlibプロットと、各データ系列に対して2つのチェックボックスで構成される単純なウィジェットが作成されています。

L0L1は再びプロットへの呼び出しにバインドされています。 * on_click *が呼び出されたときに渡されたカスタム関数内でget_visibleメソッドとset_visibleメソッドが呼び出されたときに、後で両方のlienensが表示されます。

from matplotlib.widgets import CheckButtons 

ax = plt.subplot(111) 
l0, = ax.plot(s, t, visible=False, lw=2) 
l1, = ax.plot(t, s1, lw=2) 

rax = plt.axes([.05, .4, .1, .15]) 
check = CheckButtons(rax, ('raw', 'transformed'), (False, True)) 

def fnx(checkbox_label): 
    if checkbox_label == 'raw': 
     l0.set_visible(not l0.get_visible()) 
    elif checkbox_label == 'transformed': 
     l1.set_visible(not l1.get_visible()) 

check.on_clicked(fnx) 

plt.show() 
+2

と同じ 'plot'のは'、プロットシーケンスを返す理由として理由のビットを与えることです'はmatlabのプロットからモデル化されているので、単一の関数呼び出しでプロットする任意の数の行を受け付けます。 (例えば、 'plt.plot(x、1 * x、x、2 * x、x、3 * x、x、4 * x)'のようにして4行をプロットするか、2次元配列を渡してこれにより、 'plot'は1行しかなくても常にシーケンスを返します。実際には 'plot'を使って一度に複数の行をプロットするのはかなり珍しいので、' l、= plt.plot(x、y) 'を見ることがよくあります。 –

+0

'Matplotlibで頻繁に使用される'ドキュメントの例にリンクできますか? – n611x007

+0

(http://matplotlib.org/users/legend_guide.html#controlling-the-legendentries) – n611x007

答えて

2
l, = v 

[ほぼ]

[l] = v 

>>> l=[3] 
>>> [v] = l 
>>> v 
3 
>>> 
関連する問題