拯救"经济学家"在mplstyle中默认使用matplotlib中的样式

时间:2017-10-22 22:27:07

标签: python matplotlib

我创建了#34;经济学家"通过修改给定here的示例来设置样式。但是,我想让这个样式出现在plt.style.use(your_style)下。我无法按照所需格式进行转换。例如,这里是我的代码,它创建了#34;经济学家"风格:

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')

输出如下:

enter image description here

我打开了可用的默认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')

2 个答案:

答案 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()

enter image description here

答案 1 :(得分:0)

您可以阅读有关customizing matplotlib here的文档。有一个sample matplotlibrc file,其中包含您可以自定义的大多数(如果不是全部)参数。

供参考,我相信您可以找到可自定义参数的明确清单here