【问题标题】:Matplotlib font size and line width inconsistentMatplotlib 字体大小和线宽不一致
【发布时间】:2021-10-15 10:21:24
【问题描述】:

我注意到这个问题经常出现在几个不同的情节中。我以标准方式设置字体、线宽和标记大小(示例):

  • plt.title('My Title', fontsize = 12)
  • plt.plot(x, y, linewidth = 2)
  • plt.scatter(x, y, s = 300)
  • plt.xticks(fontsize = 12)

我的问题是字体、线条和散点大小最终在程序的不同运行之间变化很大。似乎没有押韵或理由。这是什么原因造成的?这使得格式化绘图变得非常困难,因为我不知道我的代码会发生什么。

我在同一台计算机上使用 Spyder 和 Python 3.8 (Anaconda)。我没有切换屏幕分辨率或使用外接显示器。

【问题讨论】:

  • 可能会发生这种情况似乎的一件事是,如果由于您的后端是 displayibg 且 bbox_inches=“tight” 开启,并且您有一些艺术家在制作这个数字比你开始时大。
  • 如果对您有用,请考虑投票并接受我的回答

标签: python matplotlib anaconda spyder


【解决方案1】:

嗯,我看到有两种方法可以简化代码:

1.使用python的常用习语

design = {
    'fontsize' : 12
}

plt.title('My Title', **design)
plt.xticks(**design)

如果您不知道 ** 的工作原理和方式,请点击此链接: What does ** (double star/asterisk) and * (star/asterisk) do for parameters?

当函数共享相同的参数时,此方法有效。

2。使用 matplotlib 库的内置 rcParams 设置默认设计

params = {
    'axes.labelsize': 6,
    'axes.titlesize':6,
    'xtick.labelsize':6,
    'ytick.labelsize':6,
    'axes.titlepad': 1,
    'axes.labelpad': 1,
    'font.size': 12
}

plt.rcParams.update(params)
plt.title('My Title')
plt.plot(x, y)
plt.scatter(x, y)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-29
    • 2017-07-04
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2011-11-01
    • 2015-08-23
    • 2014-06-22
    相关资源
    最近更新 更多