タグ付けされた質問 「matplotlib」

MatplotlibはPython用のプロットライブラリで、インタラクティブに使用したり、スタンドアロンGUIに組み込んだりできます。コンパクトな「pyplot」インターフェイスは、MATLAB®のプロット関数に似ています。

8
matplotlib:軸のオフセット値を整数または特定の数にフォーマットする
常にナノ秒(1e-9)と呼ばれるデータをプロットしているmatplotlibの図があります。y軸に、数十ナノ秒のデータがある場合、つまり 44e-9の場合、軸の値は4.4と表示され、+ 1e-8がオフセットとして表示されます。とにかく、軸に+ 1e-9オフセットで44を表示するように強制する方法はありますか? 軸が+ 5.54478e4を示しているx軸についても同じです。オフセットは+55447(整数、小数なし-ここでは値は日数です)を示します。 私はこのようないくつかのことを試しました: p = axes.plot(x,y) p.ticklabel_format(style='plain') x軸の場合、これは機能しませんが、おそらく間違って使用している、またはドキュメントの解釈を誤っていると思いますが、誰かが私を正しい方向に向けることはできますか? ありがとう、ジョナサン フォーマッタで何かを試みましたが、まだ解決策が見つかりません...: myyfmt = ScalarFormatter(useOffset=True) myyfmt._set_offset(1e9) axes.get_yaxis().set_major_formatter(myyfmt) そして myxfmt = ScalarFormatter(useOffset=True) myxfmt.set_portlimits((-9,5)) axes.get_xaxis().set_major_formatter(myxfmt) 余談ですが、「オフセット番号」オブジェクトが実際にどこにあるのか私は実際に混乱しています...それはメジャー/マイナーティックの一部ですか?

6
辞書を使用してmatplotlibを使用してバーをプロットする
matplotlib辞書から直接データを使用して棒グラフをプロットする方法はありますか? 私の辞書はこのようになります: D = {u'Label1':26, u'Label2': 17, u'Label3':30} 私は期待していました fig = plt.figure(figsize=(5.5,3),dpi=300) ax = fig.add_subplot(111) bar = ax.bar(D,range(1,len(D)+1,1),0.5) 動作しますが、動作しません。 ここにエラーがあります: >>> ax.bar(D,range(1,len(D)+1,1),0.5) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 4904, in bar self.add_patch(r) File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 1570, in add_patch self._update_patch_limits(p) File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line …

5
同じ図に異なるデータフレームをプロットする
長年の温度記録を含む温度ファイルがあり、次のような形式です。 2012-04-12,16:13:09,20.6 2012-04-12,17:13:09,20.9 2012-04-12,18:13:09,20.6 2007-05-12,19:13:09,5.4 2007-05-12,20:13:09,20.6 2007-05-12,20:13:09,20.6 2005-08-11,11:13:09,20.6 2005-08-11,11:13:09,17.5 2005-08-13,07:13:09,20.6 2006-04-13,01:13:09,20.6 毎年、レコードの番号、時刻が異なるため、パンダのdatetimeindicesはすべて異なります。 比較するために、異なる年のデータを同じ図にプロットします。X軸は1月から12月で、Y軸は温度です。これを行うにはどうすればよいですか?

6
Ipythonノートブック(1つのセル内)でループ内のプロットを動的に更新する方法
環境:Python 2.7、matplotlib 1.3、IPython notebook 1.1、linux、chrome。コードは、1つの単一の入力セルにあります。--pylab=inline IPythonノートブックとパンダを使用してストリームを消費し、5秒ごとに動的にプロットを更新したいと思います。 printステートメントを使用してデータをテキスト形式で印刷すると、完全に正常に機能します。出力セルはデータを印刷し続け、新しい行を追加します。しかし、データをプロットしようとすると(その後ループで更新しようとすると)、出力セルにプロットが表示されません。ただし、ループを削除した場合は、1回だけプロットします。正常に動作します。 次に、簡単なテストをいくつか行いました。 i = pd.date_range('2013-1-1',periods=100,freq='s') while True: plot(pd.Series(data=np.random.randn(100), index=i)) #pd.Series(data=np.random.randn(100), index=i).plot() also tried this one time.sleep(5) プロセスを手動で中断するまで(ctrl + m + i)、出力には何も表示されません。そして、それを中断した後、プロットは複数の重なり合った線として正しく表示されます。しかし、私が本当に望んでいるのは、表示されて5秒ごとに更新されるプロットです(または、plot()関数が呼び出されたときはいつでも、上で述べた印刷ステートメントの出力と同様に、うまく機能します)。セルが完全に完了した後に最終的なチャートを表示するだけでは、私は望みません。 それぞれの後にdraw()関数を明示的に追加することなども試みましたplot()。どれも機能しません。IPython Notebookの1つのセル内でfor / whileループによってプロットを動的に更新する方法を知りましょう。

5
matplotlib棒グラフに値ラベルを追加する
比較的簡単なものに行き詰まりました。以下に示すコードは、私が取り組んでいるより大きなプロジェクトに基づいたサンプルです。すべての詳細を投稿する理由は見当たらないので、持ってきたデータ構造をそのまま受け入れてください。 基本的に、私は棒グラフを作成しています。棒に値ラベルを追加する方法(棒の中央またはそのすぐ上)を理解することができます。Web上のサンプルを調べていましたが、自分のコードでの実装は成功していません。私は解決策が「テキスト」または「注釈」のいずれかであると信じていますが、私は:a)どちらを使用するかわからない(そして一般的に言えば、いつ使用するかわからない)。b)値ラベルを表示するためにどちらも取得できない。以下の私のコード、あなたの助けに感謝します。前もって感謝します! import numpy as np import pandas as pd import matplotlib.pyplot as plt pd.set_option('display.mpl_style', 'default') %matplotlib inline # Bring some raw data. frequencies = [6, 16, 75, 160, 244, 260, 145, 73, 16, 4, 1] # In my original code I create a series and run on that, # …


3
Pythonで3D散布図を作成するにはどうすればよいですか?
私は現在、nx3マトリックス配列を持っています。3つの列を3つの軸としてプロットしたいと思います。どうやってやるの? 私はグーグルでMatlabの使用を提案しましたが、それを理解するのに本当に苦労しています。また、散布図である必要があります。 誰か教えてもらえますか?

12
scipy:フレーム、軸なし、コンテンツのみのsavefig
numpy / scipyには、画像が配列に格納されています。表示できます。境界線、軸、ラベル、タイトルなどを使用savefig せずに保存したいと思います。純粋な画像だけで、他には何もありません。 PyPNGまたはのようなパッケージは避けたいのですがscipy.misc.imsave、問題が発生することがあります(常にうまくインストールされるとは限らずsavefig()、私にとっては基本的なものにすぎません)


5
Spyder / IPython / matplotlibでインタラクティブプロットを再度取得するにはどうすればよいですか?
Windows 7でPython(x、y)2.7.2.3から2.7.6.0にアップグレードしました(そしてfunction_name?、オブジェクトインスペクタでdocstringを最後に入力して表示できることを嬉しく思いました)が、今はプロットが機能しない慣れている。 以前(Spyder 2.1.9、IPython 0.10.2、matplotlib 1.2.1)、たとえば、このスクリプトをプロットすると、インタラクティブウィンドウにサブプロットが並べてプロットされました。 今(Spyder 2.2.5、IPython 1.2.0、Matplotlib 1.3.1)物事をプロットしようとすると、サブプロットを小さなインラインPNGとして実行します。これはIPythonの変更です。 だから私はオプションに入り、これを見つけました: これは、4つのサブプロットを並べて表示して、古いインタラクティブプロットを元に戻すことができるようですが、「自動」に切り替えて何かをプロットしようとしても、何も実行されません。プロットはまったくありません。 このドロップダウンをQtに切り替えるか、[サポートをアクティブにする]をオフにすると、最初のサブプロットまたはその一部のみがプロットされ、その後停止します。 相互作用できる1つの図で4つの並列サブプロットの古い動作を取得するにはどうすればよいですか?

3
Pythonでの散布図とカラーマッピング
numpy配列に格納されたポイントxとyの範囲があります。これらはx(t)とy(t)を表します。ここでt = 0 ... T-1 を使用して散布図をプロットしています import matplotlib.pyplot as plt plt.scatter(x,y) plt.show() 時間を表すカラーマップが欲しいのですが(したがって、numpy配列のインデックスに応じてポイントに色を付けます) そうするための最も簡単な方法は何ですか?

3
pip installMatplotlibの使用中にメモリエラーが発生しました
Python 2.7を使用していますが、Matplotlibをインストールしようとすると、「pipinstallmatplotlib」を使用するとこのエラーが発生します。 Exception: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 232, in main status = self.run(options, args) File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 339, in run requirement_set.prepare_files(finder) File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 355, in prepare_files do_download, session=self.session, File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 782, in unpack_url session, File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 667, in unpack_http_url from_path, content_type = _download_http_url(link, …

4
プロットをPDFに保存します
プロットモジュール def plotGraph(X,Y): fignum = random.randint(0,sys.maxint) plt.figure(fignum) ### Plotting arrangements ### return fignum メインモジュール import matplotlib.pyplot as plt ### tempDLStats, tempDLlabels are the argument plot1 = plotGraph(tempDLstats, tempDLlabels) plot2 = plotGraph(tempDLstats_1, tempDLlabels_1) plot3 = plotGraph(tempDLstats_2, tempDLlabels_2) plt.show() すべてのグラフplot1、plot2、plot3を単一のPDFファイルに保存したいと思います。それを達成する方法はありますか?plotGraphメインモジュールに関数を含めることができません。 名前の付いた関数がありますがpylab.savefig、それはプロットモジュールと一緒に配置された場合にのみ機能するようです。それを達成する他の方法はありますか?

2
matplotlib imshow()グラフ軸の値を変更します
入力データがあるとします。 data = np.random.normal(loc=100,scale=10,size=(500,1,32)) hist = np.ones((32,20)) # initialise hist for z in range(32): hist[z],edges = np.histogram(data[:,0,z],bins=np.arange(80,122,2)) 私はそれを使用してプロットすることができますimshow(): plt.imshow(hist,cmap='Reds') 取得: ただし、x軸の値は入力データと一致しません(つまり、100の平均、80から122の範囲)。したがって、x軸を変更しての値を表示したいと思いますedges。 私が試してみました: ax = plt.gca() ax.set_xlabel([80,122]) # range of values in edges ... # this shifts the plot so that nothing is visible そして ax.set_xticklabels(edges) ... # this labels the …

9
matplotlib / Pythonでバックエンドを変更する方法
私は次の問題に苦しんでいます。チャートのコレクションで構成されるレポートを生成する必要があります。これらのチャートはすべて、1つを除いて、Matplotlibのデフォルトバックエンド(TkAgg)を使用して作成されています。Cairoバックエンドを使用して1つのグラフを作成する必要があります。その理由は、igraphグラフをプロットしており、Cairoを使用してのみプロットできるためです。 問題は、バックエンドをその場で変更できないことです。たとえば、次の matplotlib.pyplot.switch_backend('cairo.png') 機能は機能しません。(switch_backend機能は実験的なものであることがわかっています) 私も試しましたmatplotlib.use("cairo.png")が、インポートするmatplotlib.use("cairo.png")前にステートメントを入力する必要があるため、インポートの問題が発生しmatplotlib.pyplotます。しかし、スクリプトの存続期間中に2つの異なるバックエンドが必要です。 だから私の質問は、誰かがMatplotlibでバックエンドを切り替える方法を示すコードスニペットを持っていますか? 本当にありがとう! 更新:matplotlibをロードし、デフォルトのバックエンドを表示し、matplotlibをアンロードし、リロードしてバックエンドを変更するスニペットを作成しました。 import matplotlib import matplotlib.pyplot as plt import sys print matplotlib.pyplot.get_backend() modules = [] for module in sys.modules: if module.startswith('matplotlib'): modules.append(module) for module in modules: sys.modules.pop(module) import matplotlib matplotlib.use("cairo.png") import matplotlib.pyplot as plt print matplotlib.pyplot.get_backend() しかし、これは本当にそれを行う方法ですか? 更新2:昨日深刻な脳の凍結がありました...シンプルで最も明白な解決策は、すべてのグラフにCairoバックエンドを使用し、バックエンドをまったく切り替えないことです:) 更新3:実際には、それはまだ問題なので、matplotlibバックエンドを動的に切り替える方法を知っている人は誰でも....あなたの答えを投稿してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.