如何使用python操作我的热图图来在yaxis上绘制浮动?

2024-10-01 07:37:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个32x32阵列中有直径和速度数据。每行表示直径大小,每列表示速度大小。数组中的数字表示适合每个直径/速度类别的粒子数

我绘制了一个数组大小(328094)。每行代表一个直径,每列代表一天中10秒的时间。我所附的第一张图表是我目前所拥有的。通过使用seaborn.heatmap,我能够在2D中绘制3D数据。但是,我的问题是,它绘制的是直径容器编号(第1-32行),而不是容器值(实际直径大小)

这是我的代码,其中Dropdata是一个数组数组,其中循环通过,循环通过每10秒的数据:

    DD=[]
    for row in Dropdata:
        row=row.reshape(32,32)
        dropsizes=[]
        for ii in range(0,32):
            if(np.sum(row[ii])>0):
                dropsizes.append(np.sum(row[ii]))
            else:
                dropsizes.append(np.nan)
        DD.append(dropsizes)

    DD=np.array(DD)
    DD=DD.transpose()

    import seaborn as sns

    ax=sns.heatmap(DD,cmap='cividis',xticklabels=360,vmin=0,vmax=20)
    ax.invert_yaxis()
    ax.set_xticklabels(np.arange(0,23))

    xlabel('Time [UTC]', fontsize=16)
    ylabel('Diameter Bins (mm)',fontsize=16)
    title('Drop Size Concentration Time Series',fontsize=20)
    show()

第一个图是我从这段代码中得到的。 enter image description here

我有一个名为Dbins的列表,大小为32。我需要图表来绘制实际尺寸,而不是箱子号。我怎么做?第二个图形是我希望数据的样子,例如(显然是不同的数据)

enter image description here


Tags: 数据np图表绘制代表数组ax速度