我是matplotlib的新手,我想绘制一个数组供时间序列使用,但我不使用日期,只使用索引进行排序。我还有另一个数组,上面的数组中的每个条目都有一个颜色代码。
我正试图将它们绘制成类似于this的形式,但只能绘制成一行。
我的数据如下:
array = ['event0', 'event1', 'event2', 'event0', 'event6', ..]
colours = ['r', 'g', 'b', 'r', 'y', ..]
答案 0 :(得分:0)
您可以使用plt.scatter(x, y, c=colours)
答案 1 :(得分:0)
import matplotlib.pyplot as plt
# input data
array = ['event0', 'event1', 'event2', 'event0', 'event6']
colours = ['r', 'g', 'b', 'r', 'y']
# for easier plotting, convert your data into numerical data:
array_numbers = [float(a.split('event')[1]) for a in array]
array_numbers = [1 for a in array]
# create figure, and subplots
fig = plt.figure()
ax = plt.subplot(111)
# plot newly generated numbers against their index, using the colours specified
ax.scatter(range(len(array_numbers)), array_numbers, c=colours)
# create ticklabels:
y_tick_labels = ['sensor-{}'.format(a) for a in range(7)]
# set positions of ticks, and add names
ax.set_yticks(range(7))
ax.set_yticklabels(y_tick_labels)