【问题标题】:hist and axvline do not follow color cycle / matplotlib stylehist 和 axvline 不遵循颜色循环/matplotlib 样式
【发布时间】:2018-07-06 08:59:21
【问题描述】:

我正在尝试绘制分布图,它的意思是:

import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot')

numbers = np.random.rand(100)
fig, ax = plt.subplots()
ax.hist(numbers)
ax.axvline(numbers.mean())

这将在红色分布的顶部绘制一条红线。重要的是,我想使用我的配色方案 (gglot) 中的颜色,因此我不想手动选择颜色,甚至是颜色循环。

Recently,我了解到如果我想“强制”颜色循环器使用下一个颜色,我可以这样做

next(ax._get_lines.prop_cycler)

但是,在 hist 和 axvline 之间添加这条线在这里没有帮助。我如何“强制”histaxvline 遵循我的风格?

【问题讨论】:

  • histaxvline 之间使用this answer 对我有用
  • @DavidG 抱歉,到底什么有效?
  • 您是否要让axvline 使用颜色循环中的下一种颜色?
  • 我也有同样的问题。 axvline 不尊重风格

标签: python matplotlib


【解决方案1】:

你需要通过使用获取循环中的下一个颜色

next(ax._get_lines.prop_cycler)['color']

然后您需要在axvlinecolor= 参数中显式使用它:

plt.style.use('ggplot')

numbers = np.random.rand(100)
fig, ax = plt.subplots()
ax.hist(numbers)

ax.axvline(numbers.mean(), color = next(ax._get_lines.prop_cycler)['color'])

plt.show()

这给出了:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多