0

私はMatplotlibに本当に慣れていません。毎日(または毎週、あるいは毎月)使用することはありませんが、かなりの数の数字を作成しました。そのため、凡例を追加する方法、カラーバーを追加する方法、カラーマップをカスタマイズする方法、図の特定の部分のフォントを変更する方法、透明効果を作成する方法など、いくつかの基本的なことを忘れがちです。もちろん、質問があるたびにいつでもグーグルで検索できます。グーグルはおそらくstackoverflowや他の同様のサイト、またはいくつかのブログ記事に連れて行ってくれます。ほとんどの場合、解決策を得ることができます。これは、「公式」ドキュメントが本来あるべきほど有用ではないという印象を私に与えます。

しかし、私は間違っているに違いありません。つまり、公式のドキュメントは非常に役立つはずです。そうでなければ、質問に答える人々はどのようにして解決策を知っているのでしょうか。多分彼らは「インサイダー」(Matplotlibの開発者)ですか?

だから私の質問は、あなたが開発者でない場合(しかし、あなたが開発者であればこの質問に答えることを歓迎します)、そしてここで多くのMatplotlib関連の質問に答えたとしたら、Googleに尋ねることなく自分でそれらのテクニックをどのように学ぶのですか?答えがすぐに頭に浮かばない場合、どこでどのように探しますか(Googleではなく、その質問に答えているのはあなたであり、その前に答えはまだGoogleに存在しない可能性があります)?

私はドキュメントについて不平を言っていないことに注意してください。私はそれを利用するための効率的な方法を見つけられなかったと思います。

あるいは、Matplotlibの本質的な複雑さのために、特定の要求に対する解決策を見つけることは必然的に簡単ではありませんか?本質的な複雑さによって、Matplotlibでは通常、同様のことが多くの異なる方法で実行できることを意味します。したがって、最初に特定の(そして何らかの理由で珍しい)方法を選択した場合、後で問題が発生した場合、これに対する解決策があります。問題はマニュアルに明示的に記載されていない可能性があり、Matplotlibが実際に内部でどのように機能するかを知っている教祖だけが解決策を思い付くことができます。

魚を与えるよりも、魚を釣る方法を教える方が役に立ちます。

注:今日私が遭遇する特定の問題は、フィギュアにカラーバーを追加することです。私の場合、少し「特別な」ことは、メイン画像がポリゴンのコレクションであり、それぞれの色が個別に設定されていることです。したがって、単純なカラーバー関数は、少なくとも「matplotlibカラーバーの例」の最初のGoogleの結果に示されているような方法では機能しないようです。この特定のケースでは、それは確かに2番目のGoogleの結果によって解決されますが、これは最初のGoogleの結果で何度も試行した後(および他のキーワードで検索した後)にのみ発見されます。

fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111, ...)

軸ボックスを設定するには(ポリゴンを既存の軸フレームに追加する必要があるため必要です)、使用する必要があります

ax.xaxis.label.set_fontsize(20)

xaxisラベルのフォントサイズを変更します。これは、かなりのグーグルの後でのみわかります。axにはプロパティxaxisがあり、xaxisにはプロパティlabelがあり、labelには関数set_fontsizeがあり、名前がここほど明確でない場合のそれらの意味を自分で知るにはどうすればよいですか?

4

1 に答える 1

1

pythonコマンドラインを使用して、私は通常、Pythonを使用してmatplotlib自体を読み通そうとします。

あなたの例を想定してください:

fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111, ...)

質問

axにはプロパティxaxisがあり、xaxisにはプロパティlabelがあり、labelには関数set_fontsizeがあることを自分で知るにはどうすればよいですか。

回答

ルックアップdir

for item in dir(ax):
    print item
#or in case i guess there should be a setter for sth. i search:
for item in dir(ax):
    if item.startswith("set_"):
        print item
#or if i search sth. about labels:
for item in dir(ax):
    if "label" in item:
        print item

質問

そして、彼らの名前がここほど明白でないときのそれらの意味

回答

sthを見つけたとき。有望な私は読んだdocstring

print ax.xaxis.label.set_size.__doc__

matplotlibのdocstringは通常非常に便利で、setterメソッドとgetterメソッドを説明するのに十分です。

これが役に立たない場合は、ドキュメントで検索するクラスを探します。

>>>type(ax.xaxis.label)
<class 'matplotlib.text.Text'> 

この例では、何が私をここに連れて行ってくれるでしょうか

于 2013-03-09T08:25:03.697 に答える