Как изобразить температуру (тепловой градиент) на прямоугольной блок-схеме в python? [Python] - PullRequest
0 голосов
/ 24 августа 2018

Я собираю значения температуры от 4 датчиков, подключенных к каждому из больших ядер ЦП на Odroid XU4 с течением времени. Я хочу построить график температуры (температурного градиента) на блок-схеме 4 больших ядер, показанных ниже:

enter image description here

До сих пор я следил за другим ответом по той же проблеме, но я не смог найти решение для своего. Я могу прочитать значения температуры, отправленные с термодатчиков (датчик 0-4) ядер ЦП, следующим образом:

def read_file(fname):
    import string
    with open(fname) as f:
        lines = [line.rstrip('\n') for line in f]
    sensor0 = []
    sensor1 = []
    sensor2 = []
    sensor3 = []
    for each_line in lines:
        if "sensor0" in each_line:
            this_value = each_line[10:len(each_line)]
            sensor0.append(this_value)
        if "sensor1" in each_line:
            this_value = each_line[10:len(each_line)]
            sensor1.append(this_value)
        if "sensor2" in each_line:
            this_value = each_line[10:len(each_line)]
            sensor2.append(this_value)
        if "sensor3" in each_line:
            this_value = each_line[10:len(each_line)]
            sensor3.append(this_value)
    print("\nProcessed file!\n" + fname)
    reduction = 1000
    sensor0 = map(float, sensor0)
    sensor0V = [temp / reduction for temp in sensor0]
    sensor1 = map(float, sensor1)
    sensor1V = [temp / reduction for temp in sensor1]
    sensor2 = map(float, sensor2)
    sensor2V = [temp / reduction for temp in sensor2]
    sensor3 = map(float, sensor3)
    sensor3V = [temp / reduction for temp in sensor3]

    plot(sensor0V,"Time interval of 0.1 sec on Sensor 0")
    plot(sensor1V,"Time interval of 0.1 sec on Sensor 1")
    plot(sensor2V,"Time interval of 0.1 sec on Sensor 2")
    plot(sensor3V,"Time interval of 0.1 sec on Sensor 3")

def plot(Y,xLabel):
    import matplotlib.pyplot as plt
    plt.plot(Y)
    plt.ylabel('Temperature variance over time (0.1 sec)')
    plt.xlabel(xLabel)
    plt.show()

def main():
    fname = "Temp_all.txt"
    read_file(fname)


if __name__ == '__main__':
    main()

В настоящее время, используя вышеупомянутый код, я получаю что-то вроде этого:

enter image description here

Может ли кто-нибудь помочь мне изобразить температуру на верхней части блок-диаграммы больших ядер как температурный градиент во времени?

Дата, хранящаяся в каждом списке датчиков, выглядит следующим образом:

sensor0 = ['6500', '7000', '8500', '8600']. Здесь 6500 обозначает температура, 65, в градусах Цельсия.

Пример температурного градиента показан на диаграмме ниже:

enter image description here

...