gpt4 book ai didi

python - 在 matplotlib 中优雅地更改图框的颜色

转载 作者:IT老高 更新时间:2023-10-28 20:21:08 25 4
gpt4 key购买 nike

这是 this 的后续问题帖子,讨论了轴、刻度和标签的颜色。我希望可以为此打开一个新的扩展问题。

使用轴 [ax1, ax2] 更改围绕双图(通过 add_subplot)的完整框架(刻度和轴)的颜色会导致大量代码。这段代码改变了上图的框架的颜色:

ax1.spines['bottom'].set_color('green')
ax1.spines['top'].set_color('green')
ax1.spines['left'].set_color('green')
ax1.spines['right'].set_color('green')
for t in ax1.xaxis.get_ticklines(): t.set_color('green')
for t in ax1.yaxis.get_ticklines(): t.set_color('green')
for t in ax2.xaxis.get_ticklines(): t.set_color('green')
for t in ax2.yaxis.get_ticklines(): t.set_color('green')

因此,要更改两个带有两个 y 轴的图的框架颜色,我需要 16(!) 行代码...这就是它的样子:

enter image description here

到目前为止我挖掘的其他方法:

  • matplotlib.rc: 讨论 here ;全局变化,而不是局部变化。我想要其他一些不同颜色的图。请不要讨论情节中的颜色过多... :-)

    matplotlib.rc('axes',edgecolor='green')
  • 挖出轴的刺,然后改变它:也讨论了here ;我认为不是很优雅。

    for child in ax.get_children():
    if isinstance(child, matplotlib.spines.Spine):
    child.set_color('#dddddd')

Is there an elegant way of condensing the above block, something more "pythonic"?

我在 ubuntu 下使用 python 2.6.5 和 matplotlib 0.99.1.1。

最佳答案

假设您使用的是最新版本的 matplotlib (>= 1.0),不妨试试这样:

import matplotlib.pyplot as plt

# Make the plot...
fig, axes = plt.subplots(nrows=2)
axes[0].plot(range(10), 'r-')
axes[1].plot(range(10), 'bo-')

# Set the borders to a given color...
for ax in axes:
ax.tick_params(color='green', labelcolor='green')
for spine in ax.spines.values():
spine.set_edgecolor('green')

plt.show()

enter image description here

关于python - 在 matplotlib 中优雅地更改图框的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778954/

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