我讨厌 ggplot 风格的一切,但我确实喜欢它的颜色。
import matplotlib.pyplot as plt
plt.style.use('ggplot')
这会设置该样式以及所有内容的颜色。如何仅从该样式导入颜色循环(对于所有线条、点...),而不从该样式导入任何其他内容?
要在 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)