抱歉,如果此问题已在其他地方解决。在此站点上有关将对象传递给函数的搜索导致与c ++相关的帖子。Google结果指向与生成不同颜色图有关的条目。
我想使用matplotlib颜色图为线图着色。此外,我希望能够指定哪个颜色图,就像我所说的functrion一样。
import numpy as np, matplotlib.pyplot as plt
data = [[1,2,3,4], [5,6,7,8], [6,7,83,5]]
def plotting_function(data, color_map=plt.cm.viridis, plot_kwds=None)
colors = color_map(np.linspace(0,1,len(data))
if plot_kwds is None:
plt_kwds = {}
for i, y in enumerate(data):
x_axis = range(len(y))
plot_kwds['color'] = colors[i]
plt.plot(x_axis, y, **plot_kwds)
一个根据绿线着色的线条图。
线条颜色不符合虹膜的图形。
我意识到我可以通过colors = plt.cm.viridis(np.linspace(0,1,len(data))
移入该函数来解决此问题,但是每次我想更改颜色时都弄乱源代码会很不方便。
如何将颜色图传递给自定义函数?我缺少一种更简单的方法吗?
我非常感谢您的帮助!
为什么你看不到效果的原因是因为你的初始字典使用不同的名称:plt_kwds
代替plot_kwds
我认为,可以通过使用color
关键字在for循环内分配颜色来简单地实现所需的效果。你不需要plot_kwds
import numpy as np
import matplotlib.pyplot as plt
data = [[1,2,3,4], [5,6,7,8], [6,7,83,5]]
def plotting_function(data, color_map=plt.cm.viridis, plot_kwds=None):
colors = color_map(np.linspace(0,1,len(data)))
for i, y in enumerate(data):
x_axis = range(len(y))
plt.plot(x_axis, y, color=colors[i])
plotting_function(data)
回答第二个问题,您可以使用以下方法传递所需的颜色图:
plotting_function(data, color_map=plt.cm.jet)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句