【问题标题】:Graphic to Compare Lists of Distances用于比较距离列表的图形
【发布时间】:2015-01-16 18:56:56
【问题描述】:

我希望能够可视化时间轴上某些时间列表之间的差异。

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

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

或者只是开始时间:

[0.15119, 0.43909, 0.72698, 1.01189]

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

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

有人可以提供一个例子或向正确的方向轻推。

【问题讨论】:

标签: python matplotlib graphviz networkx


【解决方案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.72698], [0.72698, 1.01189], [1.01189, 1.2968]]

【讨论】:

  • 太棒了。也感谢 np.transpose 提示。我仍然对 numpy 有点害怕,但必须查找转置方法(或类),看看那里发生了什么。
  • 别被吓倒,玩玩就好; numpy 中有这么多好东西!一旦你了解了形状和数据类型,一次只玩一个函数,你会惊讶于只用几个函数就可以完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多