【问题标题】:Globally changing matplotlib default styles全局更改 matplotlib 默认样式
【发布时间】:2018-09-08 21:10:22
【问题描述】:

我有一个问题:如何在 matplotlib 上使用默认样式(因为我喜欢它)但只更改一个参数?这是一个例子: 使用默认的 matplotlib 样式或“calssic”样式,我可以通过更新 rcParams 来全局更改字体大小:

import matplotlib.pyplot as plt
plt.style.use('classic')
plt.rcParams.update({'font.size': 18.0})

x = [0, 1, 2, 3]
y = [0, 1, 4, 9]

fig, ax0 = plt.subplots()
ax0.plot(x, y)
ax0.set_xlabel('data x')
ax0.set_ylabel('data y')
plt.show()

output

如果我在开头选择不同的默认样式:

import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams.update({'font.size': 18.0})

x = [0, 1, 2, 3]
y = [0, 1, 4, 9]

fig, ax0 = plt.subplots()
ax0.plot(x, y)
ax0.set_xlabel('data x')
ax0.set_ylabel('data y')
plt.show()

the font size remains of the default value 它不是那样工作的;

plt.rcParams.update({'font.size': 18.0})

就像font.size 行不存在一样。 现在一个简单的解决方案是定义一个具有特定字体大小的全局变量,然后手动将其添加到绘图的每个元素中,但这对我来说听起来并不那么聪明。还有其他想法如何全局修改字体大小吗?实际上有可能还是我只需要处理它并自己创建一个matplotlib样式文件?

编辑: 通过更仔细的思考,在 DavidG 评论之后,我尝试了不同的风格:ggplot 和 Fivethirtyeight 甚至 seaborn-dark,并且我的代码有效(如我所料)。然后这个问题只与 seaborn 风格有关(我很不幸选择)..

【问题讨论】:

  • 你也安装了seaborn模块吗?
  • 事实上不,我只是没想到它会是相关的,因为我只是假设所有信息都在 matplotlib 样式库中
  • 我知道如何使用 seaborn,但我似乎无法仅使用 matplotlib 使其工作。我将发布一个使用 seaborn 的答案,即使它并不完全符合您的要求,因为它可能会帮助安装了该模块的其他人
  • 您无需安装 seaborn 即可使用seaborn 样式;同样,您不必安装 ggplot 即可使用 ggplot 样式。这些样式完全写在它们引用的单个 .mplstyle 文件中。

标签: python matplotlib


【解决方案1】:

ticklabels 的大小由xtick.labelsize 和ytick.labelsize rcParams 决定。
如果您将它们打印出来,您会看到它们被设置为10 (pt) 以用于seaborn 样式。因此,如果您将它们改为18,您将获得所需的情节。

import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams.update({'font.size': 18,
                     'xtick.labelsize' : 18,
                     'ytick.labelsize' : 18})

# ....

如您所见,坐标区标签仍然很小。那是因为我们没有设置axes.labelsize 参数。

那么为什么 seaborn-dark 只通过设置 'font.size' 就可以按预期工作?
答案是有两种方法可以指定字体大小。一个是上面点的绝对数字,另一个是使用相对值。那些是xx-small, x-small, small, medium, large, x-large, xx-large, larger, or smaller。这些值与font.size 中指定的大小相关。

在seaborn-dark 样式和(希望有许多其他样式)的情况下,labelsize 使用这些相对值之一设置。在这种情况下,它是medium,这意味着正在使用font.size。

您可以检查matplotlib\lib\matplotlib\mpl-data\stylelib 文件夹中的样式,以直接查看它们如何指定各自的参数并找出它们之间的差异。

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 2014-09-26
    • 1970-01-01
    • 2020-05-21
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2020-10-02
    相关资源
    最近更新 更多