La réduction de la taille de pdf figure de fichier dans matplotlib
Dans matplotlib
, je suis en utilisant LineCollection
pour dessiner et colorer le pays, où les limites des comtés sont donnés. Quand je suis en économie de la figure en tant que fichier pdf:
fig.savefig('filename.pdf',dpi=300)
la figure de taille sont assez grandes. Cependant, sur enregistrer en tant que fichier png:
fig.savefig('filename.png',dpi=300)
et ensuite de les convertir au format pdf en utilisant linux convert
de commande, les fichiers sont petits. J'ai essayé de réduire le dpi, mais cela ne change pas la taille du fichier pdf. Est-il possible que les chiffres peuvent être enregistrées directement en tant que plus petite des fichiers pdf à partir de matplotlib?
J'ai trouvé ce blog très utile: astrobetter.com/blog/2014/01/17/slim-down-your-bloated-graphics
OriginalL'auteur imsc | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
Le PDF est plus volumineux, puisqu'il contient toutes les informations vectorielles. En enregistrer un PNG, vous produisez une image pixellisée. Il semble que dans votre cas, vous pouvez produire un petit PDF par pixellisation la parcelle directement:
Ici,
x, y
sont certains de la parcelle coordonnées. Fondamentalement, vous devrez utiliser la en outre argument mot-clératerized
pour obtenir l'effet.Avez-vous essayez de régler le dpi de la figure à une valeur plus faible, lors de sa création, c'est à dire
fig = plt.figure(dpi=100)
Oui. Les deux fichiers pdf (directement enregistrés en tant que bien que converti à partir png) sont enregistrés avec le dpi=300. Si j'utilise dpi=100, le chiffre de la taille diminue, mais la qualité est inférieure à la png.
Pourriez-vous probablement fournir un exemple de travail, ce qui nous permet de jouer avec les réglages? Existe-il d'autres artistes, qui pourraient profiter de pixellisation?
Peu difficile, car le fichier de données j'utilise sont de grande taille. Si les courbes sont assez lisse à la fois la png et les fichiers pdf sont de même taille après la pixellisation. Cependant, je suppose que, comme dans mon cas, les courbes sont des côtes (en zigzag) la pdf et png sont de taille différente. Votre réponse est très proche de ce que je veux. Merci encore.
OriginalL'auteur David Zwicker
Je pense à l'aide de "pixellisé = True" enregistre effectivement l'image de la même façon au format png. Lorsque vous effectuez un zoom avant, vous verrez flou pixels.
Si vous voulez les figures de haute qualité, ma suggestion est d'échantillon à partir des données et de faire un terrain. La taille du fichier pdf est à peu près le montant de points de données est-il besoin de rappeler.
OriginalL'auteur user108372