使用matplotlib在改变图形大小时缩放图例边框、虚线和点划线
我正在尝试使用matplotlib来准备一些图形,以便发表。为了让字体大小与手稿中的文字匹配,我想一开始就创建出最终大小的图形,这样在把图形插入手稿时就不需要再调整大小了。
我遇到的问题是,由于图形比较小,我可以调整字体大小、坐标轴大小、线条宽度等等,但我一直搞不明白如何调整虚线或点线的样式,以及图例边框的厚度。举个简单且有点夸张的例子,看看下面的代码:
#!/usr/bin/python
small = True
from matplotlib import use
use('pdf')
from matplotlib import rc
rc('ps', usedistiller='xpdf')
rc('text', usetex=True)
if small:
figsize = (1.0, 0.5)
rc('font', size=2)
rc('axes', labelsize=2, linewidth=0.2)
rc('legend', fontsize=2, handlelength=10)
rc('xtick', labelsize=2)
rc('ytick', labelsize=2)
rc('lines', lw=0.2, mew=0.2)
rc('grid', linewidth=0.2)
else:
figsize = (8,8)
import numpy as np
x = np.arange(0, 10, 0.001)
y = np.sin(x)
import matplotlib.pyplot as plt
f = plt.figure(figsize=figsize)
a = f.add_subplot(111)
a.plot(x, y, '--', label='foo bar')
a.legend()
f.savefig('mplt.pdf')
如果你把第一行可执行的代码改成 small = False
,你就能看到它在“正常”大小下的样子。和正常大小相比,小图的图例框边框太厚了,而且虚线看起来也太粗了,也就是说,虚线的短线和短线之间的距离都太长了。
所以我的问题是,有没有办法解决这两个问题呢?
我使用的matplotlib版本是0.99.1.2。