【发布时间】:2018-01-03 21:54:12
【问题描述】:
我只是想用 matplotlib 的 eventplot 绘制一些带有特定颜色的刻度线。我正在使用 %matplotlib inline 在 Jupyter notebook 中运行 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
大概是因为我没有提供与数据长度相同的颜色列表(但我不希望它们都只是相同的颜色!)。当我使用像“深红色”或“兰花”这样的颜色字符串时,它也会出错。但是当我使用像 'r' 这样的简单单字母字符串时,它会起作用。
我真的只限于使用极其有限的一组单字母颜色字符串'r','b','g','k','m','y'等......还是制作使用此事件图时颜色列表很长?
【问题讨论】:
-
您在提供
color=[0.3,0.3,0.5]时希望看到什么?当您提供一个列表作为颜色参数时,matplotlib 知道您希望第一个事件是颜色 [0],第二个是颜色 [1],...... -
我希望每个刻度线都具有由 [0.3,0.3,0.5] 定义的颜色,这是一种深海军蓝色,我觉得比默认的“b”更适合眼睛。我真的必须列出每个元素为 [0.3,0.3,0.5] 的相同长度的数据列表吗?
-
不,你不需要那个,尝试传递
color = (0.3,0.3,0.5),这样,作为一个元组,应该可以工作。 -
你确定吗?它对你有用吗?使用元组仍然对我不起作用:(
-
是的,谢谢它有效!
标签: python matplotlib colors