如何使用matplotlib绘制包含该数据的图表。问题是可视化从第2列到第3列的距离。最后它应该看起来像一个时间图。
0 0 0.016 19.833
1 0 19.834 52.805
2 0 52.806 84.005
5 0 84.012 107.305
8 0 107.315 128.998
10 0 129.005 138.956
11 0 138.961 145.587
13 0 145.594 163.863
15 0 163.872 192.118
16 0 192.127 193.787
17 0 193.796 197.106
20 0 236.099 246.223
25 1 31.096 56.180
27 1 58.097 64.857
28 1 64.858 66.494
29 1 66.496 89.908
31 1 89.918 111.606
34 1 129.007 137.371
35 1 137.372 145.727
39 1 176.097 209.461
42 1 209.476 226.207
44 1 226.217 259.317
46 1 259.329 282.488
47 1 282.493 298.905
我需要2种颜色用于第1列。对于y轴,选择第0列,对于x轴,第2列和第3列是重要的。对于每一行,应绘制一条线。第2列是开始时间,第3列是停止时间。
答案 0 :(得分:13)
如果我理解正确,你想绘制第3和第4列的x值之间的水平线,y值等于第0列。在给定的y值下绘制水平线在两个x值之间,您可以使用hlines
。我相信下面的代码是一种可能的解决方案。
import numpy as np
import matplotlib.pyplot as plt
# Read data from file into variables
y, c, x1, x2 = np.loadtxt('data.txt', unpack=True)
# Map value to color
color_mapper = np.vectorize(lambda x: {0: 'red', 1: 'blue'}.get(x))
# Plot a line for every line of data in your file
plt.hlines(y, x1, x2, colors=color_mapper(c))
答案 1 :(得分:1)
例如,您可以使用numpy.loadtxt
阅读文本文件,然后使用matplotlib
绘制文本文件。例如:
import numpy as np
import matplotlib.pyplot as plt
x, y = np.loadtxt('file.txt', usecols=(2,3), unpack=True)
plt.plot(x,y)
您应该看到matplotlib documentation了解更多选项。