построить график нескольких процессов в Python - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь отобразить данные о нескольких процессах для каждого имени процесса в виде строки. Линия представляет время, когда процесс был активен, а разрыв представляет время, когда процесс простаивал.

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 Ответ

0 голосов
/ 14 мая 2018

Вы должны использовать ключевое слово label и функцию legend().

Некоторые комментарии:

  • label - это ключевое слово, которое описывает, какая строка появится, когда в конце вы вызовете функцию legend().
  • Тире не очень хороший способ представить то, что вы хотите, поскольку они находятся в «единицах графика» (пикселях), и вам, скорее всего, нужны «единицы данных» (время). Попробуйте увеличить масштаб графика, и вы увидите, что штрихи не увеличиваются соответствующим образом.
import matplotlib.pyplot as 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), dashes = [alive_for_time,
sleep_for_time], label="process1")

plt.plot(x_axis_data2, [2] * len(x_axis_data2), dashes = [alive_for_time, 
sleep_for_time], label="process2")

plt.plot(x_axis_data2, [3] * len(x_axis_data3), dashes = [alive_for_time, 
sleep_for_time], label="process3")

plt.legend()


plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...