我正在尝试设置一系列垂直轴跨度,以在不同时间表示不同的切换位置。例如,在下图中,切换位置1(绿色)发生了很多次,在其他位置之间交替。
我绘制了这些跨度在元组列表中运行for循环,每个元组包含每个区间的初始和最终索引以绘制axvspan。
def plotShades(timestamp, intervals, colour):
for i in range(len(intervals)):
md.plt.axvspan(timestamp[intervals[i][0]], timestamp[intervals[i][1]], alpha=0.5, color=colour, label="interval")
然后调用另一个函数,绘制每个不同切换位置的阴影:
def plotAllOutcomes(timestamp, switches):
#switches is a list of 7 arrays indicating when the switcher is at each one of the 7 positions. If the array has a 1 value, the switcher is there. 0 otherwise.
colors = ['#d73027', '#fc8d59', '#fee08b', '#ffffbf', '#d9ef8b', '#91cf60', '#1a9850']
intervals = []
for i in range(len(switches)):
intervals.append(getIntervals(switches[i], timestamp))
plotShades(timestamp, intervals[i], colors[i])
md.plt.legend()
使用我放在这里的代码片段(不是最好的代码,我知道 - 我在Python中相当新!)传说最终每个间隔都有一个项目,这非常糟糕。这是它的外观:
我想获得一个只有7个项目的传奇,每个项目在我的axvspans情节中都是单一颜色。我该怎么办呢?我进行了相当广泛的搜索,但是之前没有设法找到这种情况。提前感谢您的帮助!!
答案 0 :(得分:4)
您可以使用以"_"
开头的标签忽略的一个小技巧:
plt.axvspan( ... , label = "_"*i + "interval")
因此,仅为i==0
的情况创建标签。