簡體   English   中英

(Matplotlib, python) 長子圖,滾動

[英](Matplotlib, python) long subplots, scrolling

我想創建一個 pdf 文件 [通過使用 plt.savefig("~~~.pdf")] 包含許多(大約 20 個)子圖,每個子圖都在繪制時間序列數據。 我正在使用帶有 python 語言的 matplotlib 庫。

每個子圖可能很長,我想水平放置子圖。 因此,圖形應該很長(橫向),因此應該需要水平滾動條!

有沒有辦法做到這一點? 一些示例代碼將不勝感激!

以下是我的示例代碼。 我只想繪制水平排列的 10 個正弦圖並將其保存為 pdf 文件。 (但我不太擅長這個。所以代碼對你來說可能看起來很奇怪.. :()

from matplotlib import pyplot as plt
import numpy as np

x=np.linspace(0,100,1000)
y=np.sin(x)

numplots=10
nr=1
nc=numplots
size_x=nc*50
size_y=size_x*3/4

fig=plt.figure(1,figsize=(size_x,size_y))
for i in range(nc):
    ctr=i+1
    ax=fig.add_subplot(nr,nc,ctr)

    ax.plot(x,y)

plt.savefig("longplot.pdf")
plt.clf()

謝謝!

您應該使用后端“matplotlib.backends.backend_pdf”來做到這一點。 這使您能夠以 pdf 格式保存 matplotlib 圖形。 我已經簡化了你的代碼,這是一個工作示例:

from matplotlib import pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages

x = np.linspace(0,100,1000)
y = np.sin(x)

nr = 10
nc = 1

for i in range(nr):    
    plt.subplot(nr, nc, i + 1)
    plt.plot(x, y)    

pdf = PdfPages('longplot.pdf')
pdf.savefig()

pdf.close()

我希望這有幫助。

在下面的鏈接中有一個解決方案,可以幫助您,因為它對我也有幫助。 Matplotlib 上的滾動條顯示頁面

但是如果你有很多次要情節,恐怕你的問題不會得到解決。 因為無論如何它都會縮小每個圖形。 在這種情況下,最好將您的圖形分解成更小的獨立部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM