Построить график нескольких процессов в Python
Я пытаюсь построить данные нескольких процессов по каждому имени процесса в виде линии. Линия представляет время, в течение которого процесс был активен, а разрыв представляет собой время, в течение которого процесс простаивал.
x_axis_data1 = [1,2,3,4,5,6,7,8]
x_axis_data2 = [1,2,3,4,5,6,7,8]
x_axis_data3 = [1,2,3,4,5,6,7,8]
alive_for_time = 6
sleep_for_time = 2
plt.plot(x_axis_data1, "process1", dashes = [alive_for_time,
sleep_for_time])
plt.plot(x_axis_data2, "process2", dashes = [alive_for_time,
sleep_for_time])
plt.plot(x_axis_data3, "process3", dashes = [alive_for_time,
sleep_for_time])
plt.show()
Я не уверен, как построить против строки в pyplot. Теперь у меня есть эта ошибка:
ValueError: Illegal format string "process1"; two marker symbols
1 ответ
Решение
Вы должны использовать label
ключевое слово и legend()
функция.
Некоторые комментарии:
label
ключевое слово, которое описывает, какая строка появится, когда в конце вы вызываетеlegend()
функция.- Черточки не очень хороший способ представить то, что вы хотите, поскольку они находятся в "единицах графика" (пикселях), и вам, скорее всего, нужны "единицы данных" (время). Попробуйте увеличить график, и вы увидите, что штрихи не увеличиваются соответственно.
импортировать matplotlib.pyplot как plt x_axis_data1 = [1,2,3,4,5,6,7,8] x_axis_data2 = [1,2,3,4,5,6,7,8] x_axis_data3 = [1,2,3,4,5,6,7,8] alive_for_time = 6 sleep_for_time = 2 plt.plot(x_axis_data1, [1] * len(x_axis_data1), тире = [alive_for_time, sleep_for_time], label="process1") plt.plot(x_axis_data2, [2] * len(x_axis_data2), тире = [alive_for_time, sleep_for_time], label="process2") plt.plot(x_axis_data2, [3] * len(x_axis_data3), тире = [alive_for_time, sleep_for_time], label="process3") plt.legend() plt.show()