如何更改Matplotlib-Spyder中的默认绘图颜色?

时间:2018-10-24 21:08:53

标签: python python-3.x python-2.7 matplotlib spyder

我在matplotlib中使用Spyder来绘制正弦和余弦。当我运行此代码

import matplotlib.pyplot as plt
import numpy as np

x1 = np.arange(0,4*np.pi,0.1)   # start,stop,step
y1 = np.sin(x1)
z1 = np.cos(x1)
plt.plot(x1,y1, z1)
plt.show()

我得到这个情节。

enter image description here

我不喜欢我在上面的绘图中看到的默认绘图颜色。但是,我想用漂亮的颜色来更改它们。我用plt.style.use('classic')进行了以下尝试

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

x1 = np.arange(0,4*np.pi,0.1)   # start,stop,step
y1 = np.sin(x1)
z1 = np.cos(x1)
plt.plot(x1,y1, z1)
plt.show()

但是正如您所看到的那样,这似乎再次在墙外添加了灰色背景,此外,它似乎缩小了绘图线的空间以接触X轴,这似乎有些奇怪。

enter image description here

matplotlib中,有没有任何优雅的方法可以在情节外没有灰色背景并且不缩小空间?

2 个答案:

答案 0 :(得分:1)

当matplotlib升级到版本2时,有很多更改。在升级之前,将plt.style.use('classic')更改为默认值。例如背景颜色的更改以及默认的x和y轴边距的添加,可以在问题的两个图中看到。

matplotlib版本2及更高版本中的颜色循环也已更改。阅读documentation会向您展示如何在不影响其他参数(例如背景色)的情况下改回颜色循环:

import matplotlib as mpl
from cycler import cycler
mpl.rcParams['axes.prop_cycle'] = cycler(color='bgrcmyk')

您的代码如下:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
from cycler import cycler

mpl.rcParams['axes.prop_cycle'] = cycler(color='bgrcmyk')

x1 = np.arange(0,4*np.pi,0.1)   # start,stop,step
y1 = np.sin(x1)
z1 = np.cos(x1)
plt.plot(x1,y1, z1)

plt.show()

enter image description here

答案 1 :(得分:0)

import matplotlib.pyplot as plt
import numpy as np

x1 = np.arange(0,4*np.pi,0.1)   # start,stop,step
y1 = np.sin(x1)
z1 = np.cos(x1)
plt.plot(x1,y1,'blue')
plt.plot(x1,z1,'red')
plt.show()

请注意,您不必在一个绘图中进行所有操作-您可以plot多次,并且它们都可以与show同时显示