gpt4 book ai didi

python - 使用 plt.style.use() 时如何覆盖 matplotlib 属性?

转载 作者:行者123 更新时间:2023-12-01 07:34:06 24 4
gpt4 key购买 nike

我想在 matplotlib 中使用 seaborn-dark 风格,但覆盖不可见的脊椎。

示例 A - 在将刺设置为可见之前使用该样式意味着我得到了seaborn-dark 风格,但我没有得到绿色刺。

import matplotlib.pyplot as plt

plt.style.use("seaborn-dark")

figure = plt.figure(1, figsize=(11, 11))
ax = plt.gca()

assert(isinstance(ax, plt.Axes))
for spine in ax.spines.values():
spine.set()
spine.set_visible(True)
spine.set_edgecolor('g')
spine.set_alpha(1)
plt.show()

示例 B - 在将刺设置为可见后使用该样式意味着您不会得到 seaborn-dark 样式的效果,但我确实得到了绿色刺。

import matplotlib.pyplot as plt


figure = plt.figure(1, figsize=(11, 11))
ax = plt.gca()

plt.style.use("seaborn-dark")

assert(isinstance(ax, plt.Axes))
for spine in ax.spines.values():
spine.set()
spine.set_visible(True)
spine.set_edgecolor('g')
spine.set_alpha(1)
plt.show()

我想在 matplotlib 中使用 seaborn-dark 样式,但随后覆盖脊椎以使它们可见且呈绿色,同时保持 seaborn-dark 的其他功能(例如深灰色面部颜色)相同。但是,我会得到其中之一,具体取决于 plt.Axes() 对象是在调用 plt.style.use() 之前还是之后实例化。

最佳答案

seaborn-dark 样式将轴的线宽设置为 0。因此您需要将 linewidth 属性重置回 1 或您需要的任何值。

import matplotlib.pyplot as plt

plt.style.use("seaborn-dark")

figure = plt.figure(1, figsize=(11, 11))
ax = plt.gca()

for spine in ax.spines.values():
spine.set_edgecolor('g')
spine.set_linewidth(1)

plt.show()

由于本质上您想要重新定义样式,因此我建议在同一级别更改这些参数,即 rcParams。下面的结果相同,但使参数的来源更加明显。

import matplotlib.pyplot as plt

plt.style.use("seaborn-dark")
plt.rcParams.update({"axes.linewidth" : 1,
"axes.edgecolor" : "g"})

figure = plt.figure(1, figsize=(11, 11))
ax = plt.gca()

plt.show()

关于python - 使用 plt.style.use() 时如何覆盖 matplotlib 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57081003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com