如何更改 matplotlib - spyder 中的默认绘图颜色? [复制]
Posted
技术标签:
【中文标题】如何更改 matplotlib - spyder 中的默认绘图颜色? [复制]【英文标题】:How to change the default plotting color in matplotlib - spyder? [duplicate] 【发布时间】:2019-03-29 09:31:21 【问题描述】:我在Spyder
中使用matplotlib
来简单地绘制正弦和余弦。当我运行这段代码时
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()
我明白了这个情节。
我不喜欢我在上面的情节中看到的默认绘图颜色。但是,我想用好看的颜色来改变它们。我用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 轴,这似乎有点奇怪。
在matplotlib
中是否有任何优雅的方法可以做到这一点,而在情节之外没有灰色背景并且不缩小空间?
【问题讨论】:
plt.plot(x1,y1, 'b-')
将绘制蓝线,g-
将绘制绿线等。
【参考方案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()
【讨论】:
但这给出了另一个错误AttributeError: module 'matplotlib' has no attribute 'plot'
。你试过运行它吗?
@Brown 我已经用我运行的代码和我得到的结果更新了答案
谢谢,我已将其标记为已接受的答案。你也可以通过投票来帮我一个忙:-)
很高兴能提供帮助 :-) 并且很好地完成了第一个问题!【参考方案2】:
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
同时显示
【讨论】:
以上是关于如何更改 matplotlib - spyder 中的默认绘图颜色? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spyder(或任何其他调试器)的 ipdb 调试器中强制 Matplotlib 进行绘制?
使用 matplotlib 在 Spyder 中进行交互式(?)绘图