用于比较距离列表的图形

时间:2015-01-16 18:56:57

标签: python matplotlib graphviz networkx

我希望能够在时间轴上看到某些时间列表之间的差异。

我可以使用开始和结束时间元组返回它们:

[(0.15119, 0.43909), (0.43909, 0.72698), (0.72698, 1.01189), (1.01189, 1.2968)]

或只是开始时间:

[0.15119, 0.43909, 0.72698, 1.01189]

我想最终得到这样的结果:

Example Graph

我查看了graphvizmatplotlibnetworkx,我猜这可能是一个相对简单的图表。也许完全不同的工具是最有意义的。

有人可以提供正确方向的示例或推动。

1 个答案:

答案 0 :(得分:1)

我认为您需要做的就是使用起始值和结束值作为x构建一系列粗线,将零作为y构建(如果我理解正确的话)。

例如:

import matplotlib.pyplot as plt
x=[(0.15119, 0.43909), (0.43909, 0.72698), (0.72698, 1.01189), (1.01189, 1.2968)]
for i in x:
    plt.plot(i,[0,0],linewidth=10)
plt.show()
顺便说一句,你可以使用numpy从第一组(加上最后结束时间)轻松完成第二组次数:

import numpy as np
times = np.array([0.15119, 0.43909, 0.72698, 1.01189, 1.2968])
time_pairs = np.transpose([times[:-1],times[1:]])

time_pairs.tolist()

给出:     [[0.15119,0.43909],[0.43909,0.726698],[0.72698,1.01189],[1.01189,1.2968]]