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()
效果圖如下
