Создание диаграммы Ганта с помощью python matplotlib
Как это возможно с 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 - время остановки.
2 ответа
Если я вас правильно понял, вы хотите построить горизонтальную линию между значениями x 3-го и 4-го столбцов, при этом значение 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))
Вы можете прочитать текстовый файл, используя 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 для получения дополнительных опций.