我通过修改给定的示例创建了“经济学人”风格 here .但是,我想让这个样式出现在 plt.style.use(your_style) 下。我在转换为所需格式时遇到问题。例如,这是我创建“经济学人”风格的代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
y = np.sin(x)
fig, ax = plt.subplots(facecolor='#CAD9E1', figsize=(12, 10))
ax.set_facecolor('#CAD9E1')
ax.yaxis.grid(color='#ffffff', linewidth=2)
ax.spines['left'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.tick_params(axis='y', length=0)
ax.xaxis.set_ticks_position('bottom')
# Lengthen the bottom x-ticks and set them to dark gray
ax.tick_params(direction='in', axis='x', length=7, color='0.1')
plt.scatter(x, y, color='#006767')
输出如下:
我打开可用的默认 mplstyles,发现我可以使用以下方法更改面和网格线的颜色:
axes.facecolor: cad9e1
grid.color: ffffff
但是,我不知道如何实现其余部分,例如:
ax.yaxis.grid(color='#ffffff', linewidth=2)
ax.spines['left'].set_visible(False)
ax.tick_params(axis='y', length=0)
ax.xaxis.set_ticks_position('bottom')
ax.tick_params(direction='in', axis='x', length=7, color='0.1')
最佳答案
大多数(但不是所有)您可以执行的设置都具有等效的 matplotlib rc 参数。我认为你很幸运,以下是所讨论的“经济学家”风格的 rc 参数。
要将它们放入文件中,请参阅 matplotlib customize guide .
import numpy as np
import matplotlib.pyplot as plt
params = {"figure.facecolor": "#cad9e1",
"axes.facecolor": "#cad9e1",
"axes.grid" : True,
"axes.grid.axis" : "y",
"grid.color" : "#ffffff",
"grid.linewidth": 2,
"axes.spines.left" : False,
"axes.spines.right" : False,
"axes.spines.top" : False,
"ytick.major.size": 0,
"ytick.minor.size": 0,
"xtick.direction" : "in",
"xtick.major.size" : 7,
"xtick.color" : "#191919",
"axes.edgecolor" :"#191919",
"axes.prop_cycle" : plt.cycler('color',
['#006767', '#ff7f0e', '#2ca02c', '#d62728',
'#9467bd', '#8c564b', '#e377c2', '#7f7f7f',
'#bcbd22', '#17becf'])}
plt.rcParams.update(params)
x = np.random.randn(1000)
y = np.sin(x)
fig, ax = plt.subplots(figsize=(12, 10))
ax.scatter(x, y)
plt.show()
关于python - 在 matplotlib 中将 "The Economist"样式保存为 mplstyle 中的默认样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46879764/