【发布时间】: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()
如果我在开头选择不同的默认样式:
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