Matplotlib 字体大小和线宽不一致

Posted

技术标签:

【中文标题】Matplotlib 字体大小和线宽不一致【英文标题】:Matplotlib font size and line width inconsistent 【发布时间】: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” 开启,并且您有一些艺术家在制作这个数字比你开始时大。 如果对您有用,请考虑投票并接受我的回答 【参考方案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)

【讨论】:

以上是关于Matplotlib 字体大小和线宽不一致的主要内容,如果未能解决你的问题,请参考以下文章

ggplot2 可以在一个图例中分别控制点大小和线宽(线宽)吗?

matplotlib 画图的相关设置:坐标轴刻度字体、大小等

更改 matplotlib 图例中各个标签的字体大小

增加饼图matplotlib中标签的字体大小[重复]

python使用matplotlib可视化为可视化图像添加标题(title)自定义标题的字体格式字体大小字体颜色等

python使用matplotlib可视化为可视化图像添加图例(legend)自定义图例的字体格式字体大小字体颜色等