matplotlib, savefig: PPP paramètre est ignoré

Je ne peux pas trouver quelqu'un d'autre à ce problème. Dans matplotlib, vous pouvez afficher vos parcelles en utilisant soit la méthode show() ou savefig(). Ces générer légèrement différente des images; dans mon cas, le savefig() l'image est plus laid et le plus difficile à comprendre. J'ai besoin de rendre la vie facile pour mon examinator, donc..

J'ai trouvé quelques sujets qui m'a suggéré de définir la résolution de la taille de celui de show(). J'ai essayé:

-> Paramètre savefig.dpi directement avec matplotlib.rcParams['savefig.dpi'] = 80.

-> Paramètre savefig.dpi directement dans ~/.matplotlib/matplotlibrc.

-> Déplacer mon fichier rc à la MDC.

-> Enfin, à l'aide de savefig('image.pdf', ppp=80)

Je peux vérifier que l'attribut est en effet se définir; mais il semble que le paramètre est igored par savefig(). Quelqu'un peut-il aider?

(Simplifié) code:

plt.bar(ind, functimes, yerr=stddev, bottom=0, width=barWidth, align='center', color='b')

ax = plt.gca()
ax.legend(barRcts, barLegend)
plt.title("Function Call Overhead")
plt.xlabel("Function ID")
plt.ylabel("Execution Time [us]")

plt.xticks(ind, funcNames)
figtest.autofmt_xdate()

plt.savefig(out_file, dpi=80, format='pdf')
  • matplotlib enregistre pdf fichiers en format vectoriel. Sauf si vous avez des images bitmap dans il y, le DPI est plutôt vide de sens dans un vecteur d'image, car ils sont indépendants de la résolution.
  • Aha, je comprends. Donc, il n'y a aucun moyen d'enregistrer des images pdf avec savefig() de sorte qu'ils sont identiques à celles que vous pouvez enregistrer (manuellement) avec show()?
  • Ils doivent être identiques. La seule différence peut-être si vous redimensionnez la figure avant de l'enregistrer. Mais vous pouvez également définir la taille de votre figure (figure((width, height))) et savefig va l'utiliser.
  • Yup, qu'il a fait. Merci beaucoup, m'a sauvé de nombreuses et précieuses heures 🙂
InformationsquelleAutor memstick | 2012-04-12