小编jjo*_*han的帖子

保存PDF时的matplotlib线宽

我有一个具有一些对线宽敏感的相当精细功能的数字.我希望将这个数字保存为可以轻松打印的PDF(即接收器侧没有缩放,只需要Command + P和go).不幸的是,当我设置figsize =(8.5,11)以正确调整PDF的大小以进行打印时,matplotlib会选择一个非常粗的默认线宽和文本大小,这会使绘图变得混乱(图例太大而且条形图中的线条交叠).如果我设置figsize =(17,22),我将得到一个非常可行的默认线宽,并在将PDF缩放到50%进行打印后进行文本化.这就是我一直在使用的,但是由于政治原因,这个解决方案变得不可行了,而且每次我做出改变时我都不想在插图画家中扩展PDF.

如果我可以使用位图,我可以通过设置figsize =(17,22)并将dpi设置为目标dpi的一半来实现所需的结果,但这不适用于PDF,因为dpi参数似乎被忽略.我想要一个PDF

  • 看起来像boxes_good.png(带有细线,小文本的大小欺骗的位图)
  • 尺寸为8.5x11in(或打印像它一样)
  • 可以在插图画家中编辑(不是包含在pdf中的位图)

我不能不怀疑在保存为PDF时有一种简单的方法来拉动"双倍大小,半dpi"技巧,但我放弃了让它工作并开始尝试直接操纵线宽和文本化.我成功地修改了文本大小而不是线宽.这是我尝试的事情的记录:

# Tried:
# fig.set_size_inches(17,22)
# fig.savefig('boxes.pdf', dpi=100,150,300)
#   dpi parameter has no effect on linewidth, text size, or the PDF's dimensions
# 'markerscale=.5' on plt.legend and pax.legend
#   no effect
# mp.rcParams['font.size']=8
#   worked! made text smaller, now for linewidth...
# mp.rcParams['lines.linewidth']=5
#   no effect
# fig.set_linewidth(5)
#   no effect
# pax.axhline(linewidth=5)
#   only changes x axis not box surrounding subplot
# fig.set_size_inches(8.5,11) immediately before plt.savefig('boxes.pdf')
#   identical results …
Run Code Online (Sandbox Code Playgroud)

python pdf matplotlib dpi

8
推荐指数
2
解决办法
4783
查看次数

标签 统计

dpi ×1

matplotlib ×1

pdf ×1

python ×1