【问题标题】:How to plot day in x axis, time in y axis and a heatmap plot for the values in python as shown in the figure?如图所示,如何在 x 轴上绘制日期,在 y 轴上绘制时间以及 python 中的值的热图图?
【发布时间】:2022-11-17 04:12:08
【问题描述】:

我想要一个热图图,如附图所示 day in x axis, time in y axis and a heatmap plot

数据-https://1drv.ms/x/s!Av8bxRzsdiR7tEYmXDBWSUKriCSJ?e=m2objJ 我尝试绘制数据,但它导致每日绘制值

【问题讨论】:

    标签: python data-science data-analysis heatmap timeserieschart


    【解决方案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)
    

    要得到

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 2018-01-17
      • 2019-11-04
      • 1970-01-01
      相关资源
      最近更新 更多