仅从样式中获取颜色循环

问题描述 投票:0回答:1

我讨厌 ggplot 风格的一切,但我确实喜欢它的颜色。

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

这会设置该样式以及所有内容的颜色。如何仅从该样式导入颜色循环(对于所有线条、点...),而不从该样式导入任何其他内容?

python matplotlib
1个回答
1
投票

要在 Matplotlib 中获取 ggplot 颜色而不完全使用其样式,您可以从 ggplot 中提取颜色并将其应用到您的绘图中:

import matplotlib.pyplot as plt

# Use ggplot style to get its color cycle
plt.style.use('ggplot')
colors = plt.rcParams['axes.prop_cycle'].by_key()['color']

# Revert to the default style
plt.style.use('default')

# Apply ggplot colors to default style
plt.rcParams['axes.prop_cycle'] = plt.cycler(color=colors)

plt.plot([1, 2, 3], [1, 4, 9], label="Line 1")
plt.plot([1, 2, 3], [2, 3, 1], label="Line 2")
plt.legend()
plt.show()

此代码首先切换到“ggplot”样式以获取其颜色,然后恢复到默认样式并应用提取的颜色。

也许您可以避免运行此代码并只是模拟颜色:

colors = ['#E24A33', '#348ABD', '#988ED5', '#777777', '#FBC15E', '#8EBA42', '#FFB5B8']
plt.rcParams['axes.prop_cycle'] = plt.cycler(color=colors)
© www.soinside.com 2019 - 2024. All rights reserved.