gpt4 book ai didi

python - 双胞胎/中学 : Do not start with first color

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:38 26 4
gpt4 key购买 nike

我有一个配色方案来自

plt.style.use('ggplot')

所以我不想手动挑选颜色,或从颜色循环仪中挑选颜色。但是,当我有一个辅助轴时:

fig, ax = plt.subplots()
ax2 = ax.twinx()
ax.plot(np.array([1, 2]))
ax2.plot(np.array([3, 4]))

它将以相同的颜色绘制两条线。我如何告诉 ax2 该图上已经绘制了 n=1 条线,这样它就以第 n+1 颜色开始?

最佳答案

我认为按照 other answer 中的建议在 prop_cycler 上手动调用 next()有点容易出错,因为它很容易忘记。为了使该过程自动化,您可以使两个轴共享同一个循环仪:

ax2._get_lines.prop_cycler = ax1._get_lines.prop_cycler

是的,它仍然是一个丑陋的 hack,因为它依赖于内部实现细节而不是定义的接口(interface)。但在没有官方功能的情况下,这可能是最可靠的解决方案。如您所见,您可以按任意顺序在两个轴上添加绘图,无需人工干预。

完整代码:

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('ggplot')

fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax2._get_lines.prop_cycler = ax1._get_lines.prop_cycler

ax1.plot(np.array([1, 2, 3]))
ax2.plot(np.array([3, 5, 4]))
ax1.plot(np.array([0, 1, 3]))
ax2.plot(np.array([2, 4, 1]))

plt.show()

Example plot

关于python - 双胞胎/中学 : Do not start with first color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50701005/

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