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()	# tight_layout()函数可以调整子图之间的位置至默认最佳。

plt.show()

效果图如下
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值