如何将rgb颜色值传递给python的matplotlib事件图?

时间:2017-07-28 00:44:12

标签: python matplotlib colors

我只是想用matplotlib的eventplot绘制一些特定颜色的刻度线。我在Jupyter笔记本中使用%matplotlib内联运行Python 3。

这是一个示例代码:

import numpy as np
import matplotlib.pyplot as plt    
spikes = 100*np.random.random(100)
plt.eventplot(spikes, orientation='horizontal', linelengths=0.9, color=[0.3,0.3,0.5])

它输出以下错误:

ValueError: colors and positions are unequal sized sequences

错误的发生可能是因为我没有提供与数据长度相同的颜色列表(但我不是所有颜色都是相同的颜色!)。当我使用像'crimson'或'orchid'这样的颜色字符串时,它也会出错。但是当我使用像'r'这样简单的单字母字符串时,它就可以工作。

我真的只限于使用非常有限的单字母颜色字符串'r','b','g','k','m','y'等...或制作使用此事件图时的长颜色列表?

2 个答案:

答案 0 :(得分:3)

根据docs

  

你可以传递一个(r,g,b)或(r,g,b,a)元组,其中r,g,b各自   和a在[0,1]范围内。

import numpy as np
import matplotlib.pyplot as plt

spikes = 100*np.random.random(100)
plt.eventplot(spikes, orientation='horizontal', linelengths=0.9, color = [(0.3,0.3,0.5)])

plt.show()

答案 1 :(得分:0)

# for a list of three plotted variables

df = data[['x', 'y', 'z']]
color_theme=[(52/235, 235/235, 86/235), (52/235, 70/235, 235/235), 
(165/235, 52/235, 235/235)]           
df.plot(color=color_theme)

# where numerators are the R,G,B numbers
# python only uses RGB in numbers <1
# denominator is obviously the max RGB quantity on a normal RGB scale