Как с помощью python построить столбчатую диаграмму с разными категориями для каждого столбца?

#python #datetime #matplotlib #bar-chart

#python #datetime #matplotlib #столбчатая диаграмма

Вопрос:

Я хочу получать статистику времени безотказной работы моего компьютера каждый день.

Итак, я хочу построить столбчатую диаграмму, чтобы показывать время безотказной работы каждого дня (может загружаться несколько раз в день).

Столбец представляет общее количество 24 часов, и если мой компьютер работает в определенном временном диапазоне, я хочу, чтобы соответствующая область столбца этого дня была окрашена red , white наоборот.

Теперь я использую class UptimeRangeInDay для представления временного диапазона, и в один прекрасный день может появиться несколько UptimeRangeInDay объектов, которые имеют одинаковые, self.day но разные self.start_point and end_point значения.

 from dataclasses import dataclass

@dataclass
class UptimeRangeInDay:
    btime: int
    uptime: float

    def __post_init__(self):
        bdate = datetime.datetime.fromtimestamp(self.btime)
        self.day = datetime.datetime(bdate.year, bdate.month, bdate.day)
        self.start_point = (self.btime - self.day.timestamp()) / 86400
        self.end_point = self.start_point   self.uptime / 86400
  

Будет проще, если я буду подсчитывать общее время безотказной работы каждый день, а затем строить столбчатую диаграмму с накоплением.

Но я ожидал, что диаграмма может показать, работает ли компьютер в часовой или минутной степени.

Ответ №1:

Наконец, я подсчитываю общее время безотказной работы и простоя за каждый день и отмечаю наибольшее uptime downtime . Заполните на днях дополнительное время безотказной работы сервера и простоя (время, затраченное на 0) пусть uptime downtime из этого равно наибольшему, затем нанесите его на график.