我正在尝试使用 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。
最佳答案
调整dashes , 使用
a.plot(x, y, '--', label='foo bar', dashes=(2,2))
和 legend box线宽,
lg = a.legend()
fr = lg.get_frame()
fr.set_lw(0.2)
关于python - 使用 matplotlib 更改图形大小时缩放图例框边框、虚线和点线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3190798/