matplotlib 如何将rgb颜色值传递给eventplot

6uxekuva  于 2023-06-23  发布在  其他
关注(0)|答案(2)|浏览(96)

我只是尝试使用matplotlib的eventplot绘制一些特定颜色的刻度线。我在Jupyter notebook中运行Python 3,内联%matplotlib。
下面是一个示例代码:

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 '等...或者在使用这个事件图时制作一个很长的颜色列表?

xoshrz7s

xoshrz7s1#

根据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()

oymdgrw7

oymdgrw72#

# 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

相关问题