matplotlib optimale figsize wenn newline in xlabel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
capybara
User
Beiträge: 4
Registriert: Dienstag 18. Mai 2010, 10:36

Hallo,
ich muss einen barplot auf die Breite 3.27 inch bekommen. Das Problem ist, dass ich
einen newline in meinen xticklabels und im xlabel habe. Dadurch wird mir immer die x-Achsenbeschriftung
abgeschnitten, wenn ich die figure-dimension (3.27,3) waehle. Wenn ich die hoehe veraendere (z.B. 6 inch), dann
wird der Text geplotted, der plot sieht aber nicht gut aus, weil er in die Laenge gezogen ist.

Hier mein code:

Code: Alles auswählen

import matplotlib.pyplot as mpl
import scipy

mpl.rcParams['legend.fancybox'] = True
mpl.rcParams['legend.fontsize'] = 8
mpl.rcParams['font.size']=8
mpl.rcParams['axes.labelsize']=8
mpl.rcParams['ytick.labelsize']=8
mpl.rcParams['xtick.labelsize']=8
mpl.rcParams['font.sans-serif']=["Arial"]
mpl.rcParams['figure.facecolor']='w'

fig = mpl.figure(figsize=(3.27, 3))
xticklabels = ('100%\n160', '2%\n160', '100%\n190', '2%\n190', '100%\n220', '2%\n220')
#barplot                                                                                                                                                                            
data1 = [1,2,3,4,5,6]
data2  = [6,5,4,3,2,1]
error1  = [0.1, 0.3, 0.4, 0.2, 0.1, 0.2]
error2 = [0.3, 0.3, 0.2, 0.1, 0.3, 0.1]
N = len(data2)
ind = scipy.arange(N)
ax = fig.add_subplot(111)
width = 0.2
rects1 = ax.bar(ind + width, data1, width, color='y', yerr=error1, ecolor='k', alpha=0.5)
rects2 = ax.bar(ind, data2, width, color='r', yerr=error2, ecolor='k',alpha=0.5)

ax.set_xticks(ind+width)
ax.set_xticklabels(xticklabels)
mpl.xlabel("relative CK activity\nheart rate (bpm)")
mpl.ylabel(r"$t_{mito} (s)$")
mpl.legend((rects1[0], rects2[0]), ["data", "model prediction"], loc=0)
mpl.show()
mpl.savefig('figure2_fit_results.eps')
Kennt jemand eine Moeglichkeit, um alle labels auf den Plot zu bekommen ohne dass die figure-Hoehe zu gross wird?

Vielen Dank im Voraus,

Hannes
capybara
User
Beiträge: 4
Registriert: Dienstag 18. Mai 2010, 10:36

Habs gefunden...
Plotting.savefig('figure2_fit_results.eps', bbox_inches='tight'),
dann ist mein eps ok...
Antworten