Как отобразить день по оси x, время по оси y и график тепловой карты для значений в python, как показано на рисунке?

Мне нужен график тепловой карты, как показано на прикрепленном изображении. день по оси x, время по оси y и график тепловой карты

данные- https://1drv.ms/x/s!Av8bxRzsdiR7tEYmXDBWSUKriCSJ?e=m2objJ Я попытался построить данные, но это привело к ежедневным графикам значений

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку данные переносятся по строкам, вам нужно проделать некоторую работу, чтобы reshape преобразовать их в правильную структуру. Для 2D-контура, как вы связали, вам нужен 2D-массив данных, поэтому после загрузки в ваш набор данных все, что я сделал, это преобразовал его в правильную форму, а затем построил.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

path = r'<your path here>\data.csv'
data = np.array(pd.read_csv(path, header=0, delimiter=',', index_col=None, dtype=float, ))
# print(data.shape) # Gives (8760, 3)

day, hour, value = data[:,0], data[:,1], data[:,2]
value = np.reshape(value, (365, len(value)//365))
# print(value.shape) # Gives (365, 24)

fig, ax = plt.subplots(ncols =1, nrows = 1, figsize = (5,5))
ax.set_xlabel('Hour')
ax.set_ylabel('Day')

plot = ax.imshow(value, origin='lower', aspect='auto',
           extent=[hour[0], hour[-1], day[0], day[-1]],
           interpolation='gaussian',
           cmap='jet')

fig.subplots_adjust(right=0.84)
cbar_ax = fig.add_axes([0.89, 0.125, 0.05, 0.755])
cb = fig.colorbar(plot,  cax=cbar_ax, extend='both', ticks=[0,20,40,60,80,100])
cb.ax.tick_params(axis='y', direction='in', size=0)
cb.set_label('Annual AC Power in Year 1 [kW]',rotation=270, labelpad=18)

Получить

вы великий сэр. спасибо, что нашли время помочь незнакомцу в Интернете.. я буду молить Бога, чтобы вы стали следующим президентом или илоном маском... однако была небольшая ошибка.. я исправил это значение = np.reshape(value, ( 24, 365)) вы видите, что ваш график не тот, который я прикрепил в своем первоначальном вопросе, но после модификации он точно такой же .. большое спасибо

saikat ghosh 18.11.2022 17:47

@saikatghosh Моя ошибка! Но я рад, что вы разрешили это. обязательно примите ответ, чтобы другие люди могли помочь в решении вашей проблемы.

t.o. 18.11.2022 17:55

Другие вопросы по теме