Seite 1 von 1

matplotlib

Verfasst: Sonntag 4. Januar 2015, 15:35
von Lienz20013
Hi jungs ich hab wieder ein Problem bei meiner Diplomarbeit und zwar bei der Ausgabe meiner Plots. Hier ein Auszug

Code: Alles auswählen


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

pdf_pages = PdfPages('figures/Results_FBGS.pdf')

fig1 = plt.figure(1)          
fig1.set_size_inches(5.79,49.62)

axisNum = 0

for row in range(30):
    axisNum += 1
    ax1 = plt.subplot(30, 1, axisNum)  
    ax1.xaxis.set_major_locator(months)
    ax1.xaxis.set_minor_locator(days)    
    ax1.xaxis.set_major_formatter(monthsFmt)
    ax1.yaxis.set_major_formatter(ymajorFmt2)
    ax1.yaxis.grid(True, which='major')
    ax1.xaxis.grid(True, which='major')       
    plt.ylabel("Temperatur [$^\circ$C] \n" + str(T_fiber_depth[axisNum-1]) 
    + " m (BGL)")
    plt.plot(data_FBGS.index,data_FBGS.loc[:,('Temp'+str(axisNum))], 
                                           label='FBGS')
fig1.autofmt_xdate() 
#legend = ax1.legend(loc='lower left', shadow=True)
plt.figtext(0.18,0.99,
"Temperaturen der FBG-Sensoren in der \nBohrung KB-Moxa 13/1",
fontsize=14,)
fig1.tight_layout(pad=4.0, w_pad=None, h_pad=0.1)

pdf_pages.savefig(fig1)
 
# Write the PDF document to the disk
pdf_pages.close()
Und zwar habe ich eine Figure mit vielen Subplots und die würde ich gerne auf mehere A4 seiten speichern. Aber so das der Seitenumbruch automatisch gemacht wird. Also z. B. wenn 7.97 inches ereicht die nächsten subplots auf die nächste Seite u.s.w.
Kennt sich jemand damit aus?

Re: matplotlib

Verfasst: Sonntag 4. Januar 2015, 16:45
von MagBen
Lienz20013 hat geschrieben:Und zwar habe ich eine Figure mit vielen Subplots und die würde ich gerne auf mehere A4 seiten speichern. Aber so das der Seitenumbruch automatisch gemacht wird. Also z. B. wenn 7.97 inches ereicht die nächsten subplots auf die nächste Seite u.s.w.
Kennt sich jemand damit aus?
Ich würde das Anordnen der Plots eher mit der Textverarbeitung machen (am besten mit LaTeX) und mit Matplotlib alle Plots einzeln abspeichern (also nicht als Subplots).

Re: matplotlib

Verfasst: Sonntag 4. Januar 2015, 16:56
von Lienz20013
Hm ok hab ich bis jetzt auch gemacht. Aber ne andere Frage: Wie kann ich die größe von subplots einstellen? Ich probiere es gerade mit

Code: Alles auswählen

from matplotlib import gridspec
Also das ich die inch Zahlen (x,y) für einen subplot eingeben kann? Ich will das alle Abbildungen die gleiche größe haben. Damit ich die nicht in Latex irgendwie skaliert werden. Also wenn ich eine Abbildung mit vier subplots untereinander habe, dann sieht die anderst aus als eine abbildung mit 5 subplots unterainander bei gleicher Figure Größe. Aber ich will auch nicht jedes mal die Figur größe anpassen.

Re: matplotlib

Verfasst: Sonntag 4. Januar 2015, 18:58
von MagBen
Lienz20013 hat geschrieben:Wie kann ich die größe von subplots einstellen?
Im Beispiel wird nicht die Größe von Subplots eingestellt, aber die Größe von Plots:

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-2,2,201)

plt.figure( figsize=(3,2)) # Breite: 3 inch, Höhe: 2 inch
plt.plot(x, x**2)
plt.savefig("plot1.png", dpi=300) # Auflösung (900 x 600 Pixel)

plt.figure( figsize=(4,2)) # Breite: 4 inch, Höhe: 2 inch
plt.plot(x, x**3)
plt.savefig("plot2.png", dpi=150) # Auflösung (600 x 300 Pixel)