python - 使用 matplotlib 更改图形大小时缩放图例框边框、虚线和点线

标签 python matplotlib plot

我正在尝试使用 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/

相关文章:

python - 在 python 中使用具有非整数类型的枚举是一种不好的做法吗?

pandas - 如何使用 pandas 绘制年度数据集?

python - 用 python 进行 3d 绘图

python - 为什么即使我有尝试和异常(exception),它也会出现错误?

python - 如何存储一个大的、稀疏的、多维的表,其中的单元格包含不同数量的元素?

python - 使用对数着色绘制离散的 block 状二维 matplotlib 图

python - Matplotlib 使用分层直方图

python - 为什么我不能将 x 和 y 标签设置为 pd.plot() 的参数,而我可以轻松设置类似的东西,例如标题?

python - Keras:绘制模型时出现断言错误

python - Venv 在 CentOS 中失败,确保 pip 丢失