天天看點

Python實作可視化(五)--一列多子圖、直方圖python實作子圖、直方圖

Python實作可視化(五)--一列多子圖、直方圖

  • python實作子圖、直方圖

python實作子圖、直方圖

已知:dataframe中各列分别為lkbh、jkdfx、jssj_sec、kssj_sec、

lst_lkbh = list(df_order['lkbh'])

i = 1
fig = plt.figure(figsize=(9, 18))	# 開始畫圖
for lk in lst_lkbh:
    df_test = df[df['lkbh'] == lk]

    for iindex in set(df_test['jkdfx']):
        df_sg1 = df_test[df_test['jkdfx'] == iindex]
        df_sg1 = df_sg1.sort_values(by='jssj_sec')
        
    i += 1
    if i <= 5:
        node = set(df_test['lkmc'])
        total_distance = list(df_test['kssj_sec'])
        bins = np.linspace(np.min(df_test['kssj_sec']), np.max(df_test['kssj_sec']), 60)	# 直方圖參數

        ax = fig.add_subplot(21, 1, i)	# 添加子圖(分别對應行、列、第幾個圖)
        plt.hist(total_distance, bins, color='lightcoral', edgecolor='gray')	# 畫直方圖
        plt.xticks(range(0,86400,7200), labels=['0:00', '2:00', '4:00',  '6:00', '8:00', '10:00', '12:00',
                                                '14:00', '16:00', '18:00', '20:00', '22:00'])	# 限定x軸刻度

        plt.ylabel('周期數')
        plt.title(node)
        plt.ylim(0, 25)
        plt.xlim(0, 86400)
        plt.tight_layout()

plt.show()
           

效果圖如下

Python實作可視化(五)--一列多子圖、直方圖python實作子圖、直方圖