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