2017-01-20 19 views
-1
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg 
if __name__ == "__main__": 
    fig1 = ... 
    print("start plotting") 
    canvas = FigureCanvasQTAgg(fig1) 
    canvas.draw() 
    canvas.show() 

matplotlib.figureオブジェクトを返す関数を記述しました。私は上記のスクリプトを実行しています。 Pythonがクラッシュしました。これはどうすればいいですか?なぜ画像が表示されないのですか

私が代わりにmatplotlib.pyplotでの作業のFigureCanvasQTAggとmatplotlib.figureで働いている理由は、図オブジェクトはまた、私は同じ数字の2つのコピーを書き出す

with PdfPages(...) as pdf_writer: 
    canvas = FigureCanvasPDF(fig1) 
    pdf_writer.savefig(fig1) 
    pdf_writer.savefig(fig1) 

ような何かをできるようにするということです単一のpdfファイルに保存します。また、同じPDFに複数の数字を書き込むこともできます。での出力を作成するための

import matplotlib.pyplot as plt 
fig1= plt.figure() 
plt.show() 

:私たちが行うことができますどのような方法を知らないよmatplotlibの中に数字を表示するには、この使用した唯一のmatplotlib.pyplot

答えて

2

最も簡単で最良の方法は、pyplotインタフェースを使用することですpdfファイルの形式は、あなたが使用したい:あなたは同じPDFファイルに複数の図を保存したい場合は、

import matplotlib.pyplot as plt 
fig1= plt.figure() 
plt.savefig("filename.pdf") 

使用matplotlib.backends.backend_pdf.PdfPages("output.pdf")

import matplotlib.pyplot as plt 
import matplotlib.backends.backend_pdf 

fig1= plt.figure() 
ax=fig1.add_subplot(111) 

outfile = "output.pdf" 
with matplotlib.backends.backend_pdf.PdfPages(outfile) as pdf_writer: 
    pdf_writer.savefig(fig1) 
    pdf_writer.savefig(fig1) 

import matplotlib.pyplot as plt 
import matplotlib.backends.backend_pdf 

def plot(data): 
    fig= plt.figure() 
    ax = fig.add_subplot(111) 
    ax.plot(data) 
    return fig 

fig1 = plot([1,2,3]) 
fig2 = plot([9,8,7]) 

outfile = "output.pdf" 
with matplotlib.backends.backend_pdf.PdfPages(outfile) as pdf_writer: 
    pdf_writer.savefig(fig1) 
    pdf_writer.savefig(fig2) 

FigureCanvasQTAggだろう同じ機能から作成された複数の図を保存する方法の完全な例を使用したい場合は、最初に作成する必要がありますPyQtはGUIで使用されることを意味していますそれ。 This questionはそれを行う方法を示していますが、数字を表示したり保存したりするのはちょっと残念です。

+0

コードがスクリプトとして実行されていないときに、これをPDFファイルとして書き出したいので、これを使用しない理由があります。 Figureオブジェクトを扱う方がはるかに意味があるようです。 – Lost1

+0

これは完全に無関係です。私はpdfの出力を作成する方法の答えを編集しました。 pdfファイルを作成するためだけにPyQt GUIを開くことはさらに不条理です。もちろん、好きな方法で図を作成できますが、PyQt GUIを使用する場合は、 'FigureCanvasQTAgg' **のみ**を使用すると意味があります。 – ImportanceOfBeingErnest

+0

を使用していますが、pltを使用して複数の倍数を保存PDFに保存することはできません。全体のポイントは、私たちが複数のプロットを作成し、PdfPages – Lost1

関連する問題