【发布时间】:2019-02-13 00:15:11
【问题描述】:
我正在尝试创建一个虚线图,代表我的每个哈希的事件长度。我的数据框如下:
hash event start end
0174FAA018E7FAE1E84469ADC34EF666 baseball 00:00:00:000 00:00:00:500
0174FAA018E7FAE1E84469ADC34EF666 baseball 00:00:01:000 00:00:01:500
0174FAA018E7FAE1E84469ADC34EF666 cat 00:00:01:500 00:00:02:500
AF4BB75F98579B8C9F95EABEC1BDD988 baseball 00:00:01:000 00:00:01:500
AF4BB75F98579B8C9F95EABEC1BDD988 cat 00:00:01:500 00:00:02:500
AF4BB75F98579B8C9F95EABEC1BDD988 cat 00:00:03:200 00:00:05:250
AF4BB75F98579B8C9F95EABEC1BDD988 cat 00:00:03:000 00:00:04:350
类似于这里的答案:Change spacing of dashes in dashed line in matplotlib 其中散列在 y 轴上,在 x 轴上有时间间隔,事件类型用颜色编码,如果在该时间间隔内没有事件,则用空格分隔。
这是我迄今为止尝试过的,但它不起作用:
fig,ax = plt.subplots()
ax.plot([0, df.end], [df.hash], linestyle='--', dashes=(5, 5))
请看下面的例子
【问题讨论】:
-
hmm,你能上传一张你想用matplotlib构建的手绘图表吗
-
matplotlib 中从点 (x1,y1) 到 (x2,y2) 的线定义为
plt.plot([x1,x2],[y1,y2])。 -
@ImportanceOfBeingErnest 这很有帮助,而且似乎朝着正确的方向发展。您将如何自动计算每个散列的每个事件的每个开始/停止的那些?
-
我认为它们已经存在于数据框中。
df["start"][4]是开始列中的第五个数字。但是,您需要将00:00:01:500转换为可以绘制的某个数字。 -
@HaleemurAli 我编辑了问题 - 检查图片
标签: python pandas matplotlib