作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 Matplotlib 中我最喜欢做的事情之一是设置颜色循环以匹配一些颜色图,以便生成线条图,线条图具有很好的颜色渐变。喜欢这个:
以前,这是使用 set_color_cycle
的一行代码:
ax.set_color_cycle([plt.cm.spectral(i) for i in np.linspace(0, 1, num_lines)])
但是,最近我看到一个警告:
MatplotlibDeprecationWarning:
The set_color_cycle attribute was deprecated in version 1.5.
Use set_prop_cycle instead.
使用set_prop_cycle
,我可以达到同样的效果,但是我需要import cycler
,而且语法不太紧凑:
from cycler import cycler
colors = [plt.cm.spectral(i) for i in np.linspace(0, 1, num_lines)]
ax.set_prop_cycle(cycler('color', colors))
所以,我的问题是:
我是否正确使用了 set_prop_cycle
? (并且以最有效的方式?)
有没有更简单的方法将颜色循环设置为颜色图?换句话说,有这样的神话功能吗?
ax.set_colorcycle_to_colormap('jet', nlines=30)
这是完整示例的代码:
import numpy as np
import matplotlib.pyplot as plt
ax = plt.subplot(111)
num_lines = 30
colors = [plt.cm.spectral(i) for i in np.linspace(0, 1, num_lines)]
# old way:
ax.set_color_cycle(colors)
# new way:
from cycler import cycler
ax.set_prop_cycle(cycler('color', colors))
for n in range(num_lines):
x = np.linspace(0,10,500)
y = np.sin(x)+n
ax.plot(x, y, lw=3)
plt.show()
最佳答案
因为新的属性循环器可以迭代除颜色之外的其他属性(例如线条样式),您需要指定 label
,即要循环的属性。
ax.set_prop_cycle('color', colors)
虽然不需要导入和创建循环器;所以在我看来,新方法的唯一缺点是它使调用时间变长了 8 个字符。
没有将颜色图作为输入并创建循环器的神奇方法,但您也可以通过直接将 numpy 数组提供给颜色图来缩短颜色列表的创建过程。
colors = plt.cm.Spectral(np.linspace(0,1,30))
或组合
ax.set_prop_cycle('color',plt.cm.Spectral(np.linspace(0,1,30)))
关于python - Matplotlib set_color_cycle 与 set_prop_cycle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44806598/
在 Matplotlib 中我最喜欢做的事情之一是设置颜色循环以匹配一些颜色图,以便生成线条图,线条图具有很好的颜色渐变。喜欢这个: 以前,这是使用 set_color_cycle 的一行代码: ax
我是一名优秀的程序员,十分优秀!