当前位置:   article > 正文

数学建模——校园供水系统智能管理_校园供水系统智能管理数学建模论文

校园供水系统智能管理数学建模论文
import pandas as pd
data1=pd.read_excel("C://Users//JJH//Desktop//E//附件_一季度.xlsx")
data2=pd.read_excel("C://Users//JJH//Desktop//E//附件_二季度.xlsx")
data3=pd.read_excel("C://Users//JJH//Desktop//E//附件_三季度.xlsx")
data4=pd.read_excel("C://Users//JJH//Desktop//E//附件_四季度.xlsx")
data1

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
水表名水表号采集时间上次读数当前读数用量
0司法鉴定中心02019/1/1 00:15:002157.12157.10.0
1司法鉴定中心02019/1/1 00:30:002157.12157.10.0
2司法鉴定中心02019/1/1 00:45:002157.12157.10.0
3司法鉴定中心02019/1/1 01:00:002157.12157.10.0
4司法鉴定中心02019/1/1 01:15:002157.12157.10.0
.....................
729278物业30301001022019/3/31 22:45:0050.950.90.0
729279物业30301001022019/3/31 23:00:0050.950.90.0
729280物业30301001022019/3/31 23:15:0050.950.90.0
729281物业30301001022019/3/31 23:30:0050.950.90.0
729282物业30301001022019/3/31 23:45:0050.950.90.0

729283 rows × 6 columns

data1.isnull().sum()
  • 1
水表名     0
水表号     0
采集时间    0
上次读数    0
当前读数    0
用量      0
dtype: int64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
data2.isnull().sum()
  • 1
水表名     0
水表号     0
采集时间    0
上次读数    0
当前读数    0
用量      0
dtype: int64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
data3.isnull().sum()
  • 1
水表名     0
水表号     0
采集时间    0
上次读数    0
当前读数    0
用量      0
dtype: int64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
data4.isnull().sum()
  • 1
水表名     0
水表号     0
采集时间    0
上次读数    0
当前读数    0
用量      0
dtype: int64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
import numpy as np
# 合并数据
data1['季度'] = pd.Series(["一季度" for i in range(len(data1.index))])
data2['季度'] = pd.Series(["二季度" for i in range(len(data2.index))])
data3['季度'] = pd.Series(["三季度" for i in range(len(data3.index))])
data4['季度'] = pd.Series(["四季度" for i in range(len(data4.index))])
data1

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
水表名水表号采集时间上次读数当前读数用量季度
0司法鉴定中心02019/1/1 00:15:002157.12157.10.0一季度
1司法鉴定中心02019/1/1 00:30:002157.12157.10.0一季度
2司法鉴定中心02019/1/1 00:45:002157.12157.10.0一季度
3司法鉴定中心02019/1/1 01:00:002157.12157.10.0一季度
4司法鉴定中心02019/1/1 01:15:002157.12157.10.0一季度
........................
729278物业30301001022019/3/31 22:45:0050.950.90.0一季度
729279物业30301001022019/3/31 23:00:0050.950.90.0一季度
729280物业30301001022019/3/31 23:15:0050.950.90.0一季度
729281物业30301001022019/3/31 23:30:0050.950.90.0一季度
729282物业30301001022019/3/31 23:45:0050.950.90.0一季度

729283 rows × 7 columns

data = data1.append([data2,data3,data4],ignore_index=True) # 添加合并
data

  • 1
  • 2
  • 3
C:\Users\JJH\AppData\Local\Temp\ipykernel_31264\4019438690.py:1: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  data = data1.append([data2,data3,data4],ignore_index=True) # 添加合并
  • 1
  • 2
水表名水表号采集时间上次读数当前读数用量季度
0司法鉴定中心02019/1/1 00:15:002157.12157.10.0一季度
1司法鉴定中心02019/1/1 00:30:002157.12157.10.0一季度
2司法鉴定中心02019/1/1 00:45:002157.12157.10.0一季度
3司法鉴定中心02019/1/1 01:00:002157.12157.10.0一季度
4司法鉴定中心02019/1/1 01:15:002157.12157.10.0一季度
........................
3086783消防36203032002019/12/31 22:45:0022.022.00.0四季度
3086784消防36203032002019/12/31 23:00:0022.022.00.0四季度
3086785消防36203032002019/12/31 23:15:0022.022.00.0四季度
3086786消防36203032002019/12/31 23:30:0022.022.00.0四季度
3086787消防36203032002019/12/31 23:45:0022.022.00.0四季度

3086788 rows × 7 columns

x=data[['水表名','用量','采集时间']]
x
  • 1
  • 2
水表名用量采集时间
0司法鉴定中心0.02019/1/1 00:15:00
1司法鉴定中心0.02019/1/1 00:30:00
2司法鉴定中心0.02019/1/1 00:45:00
3司法鉴定中心0.02019/1/1 01:00:00
4司法鉴定中心0.02019/1/1 01:15:00
............
3086783消防0.02019/12/31 22:45:00
3086784消防0.02019/12/31 23:00:00
3086785消防0.02019/12/31 23:15:00
3086786消防0.02019/12/31 23:30:00
3086787消防0.02019/12/31 23:45:00

3086788 rows × 3 columns

x1=x[x['水表名']=='消防']
x1
  • 1
  • 2
水表名用量采集时间
1500912消防0.02019/4/22 12:15:00
1500913消防0.02019/4/22 12:30:00
1500914消防0.02019/4/22 12:45:00
1500915消防0.02019/4/22 13:00:00
1500916消防0.02019/4/22 13:15:00
............
3086783消防0.02019/12/31 22:45:00
3086784消防0.02019/12/31 23:00:00
3086785消防0.02019/12/31 23:15:00
3086786消防0.02019/12/31 23:30:00
3086787消防0.02019/12/31 23:45:00

23984 rows × 3 columns

import matplotlib.pyplot as plt
  • 1
'
运行
print(len(x1))
  • 1
23984
  • 1
# 自定义x轴刻度
xticks = ['Jan', 'Mar', 'May', 'Jul', 'Sep','Nov']  # 自定义刻度标签
x = range(23984)



# 自定义x轴刻度
num_ticks = 6  # 指定刻度数量
step = len(x) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
plt.xticks(xtick_positions, xticks)
plt.plot(x1['采集时间'],x1['用量'],color='black',linewidth=0.5)
plt.show()       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13


在这里插入图片描述

x=data[['水表名','用量','采集时间']]
x     
  • 1
  • 2
水表名用量采集时间
0司法鉴定中心0.02019/1/1 00:15:00
1司法鉴定中心0.02019/1/1 00:30:00
2司法鉴定中心0.02019/1/1 00:45:00
3司法鉴定中心0.02019/1/1 01:00:00
4司法鉴定中心0.02019/1/1 01:15:00
............
3086783消防0.02019/12/31 22:45:00
3086784消防0.02019/12/31 23:00:00
3086785消防0.02019/12/31 23:15:00
3086786消防0.02019/12/31 23:30:00
3086787消防0.02019/12/31 23:45:00

3086788 rows × 3 columns

x2=x[x['水表名']=='XXX第一学生宿舍']
x2
  • 1
  • 2
水表名用量采集时间
220372XXX第一学生宿舍0.122019/1/1 00:15:00
220373XXX第一学生宿舍0.122019/1/1 00:30:00
220374XXX第一学生宿舍0.122019/1/1 00:45:00
220375XXX第一学生宿舍0.122019/1/1 01:00:00
220376XXX第一学生宿舍0.122019/1/1 01:15:00
............
2533541XXX第一学生宿舍0.402019/12/31 22:45:00
2533542XXX第一学生宿舍0.402019/12/31 23:00:00
2533543XXX第一学生宿舍0.502019/12/31 23:15:00
2533544XXX第一学生宿舍0.502019/12/31 23:30:00
2533545XXX第一学生宿舍0.502019/12/31 23:45:00

35039 rows × 3 columns

# 自定义x轴刻度
xticks = ['Jan', 'Mar', 'May', 'Jul', 'Sep','Nov']  # 自定义刻度标签




# 自定义x轴刻度
num_ticks = 6  # 指定刻度数量
step = len(x2) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
plt.xticks(xtick_positions, xticks)
plt.plot(x2['采集时间'],x2['用量'],color='black',linewidth=0.5)
plt.show()       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13


在这里插入图片描述

x=data[['水表名','用量','采集时间']]
x3=x[x['水表名']=='留学生楼(新)']
# 自定义x轴刻度
xticks = ['Jan', 'Mar', 'May', 'Jul', 'Sep','Nov']  # 自定义刻度标签




# 自定义x轴刻度
num_ticks = 6  # 指定刻度数量
step = len(x3) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
plt.xticks(xtick_positions, xticks)
plt.plot(x3['采集时间'],x3['用量'],color='black',linewidth=0.3)
plt.show()       

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16


在这里插入图片描述

x=data[['水表名','用量','采集时间']]
x4=x[x['水表名']=='XXX教学大楼总表']
# 自定义x轴刻度
xticks = ['Jan', 'Mar', 'May', 'Jul', 'Sep','Nov']  # 自定义刻度标签




# 自定义x轴刻度
num_ticks = 6  # 指定刻度数量
step = len(x4) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
plt.xticks(xtick_positions, xticks)
plt.plot(x4['采集时间'],x4['用量'],color='black',linewidth=0.3)
plt.show()       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15


在这里插入图片描述

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定字体为SimHei
labels = ['消防', '留学生楼(新)', 'XXX教学大楼总表']

plt.boxplot([x1['用量'],x3['用量'],x4['用量']])

plt.xticks(range(1, 4), labels)
# 显示图形
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10


在这里插入图片描述

x5=x[x['水表名']=='XXX第四学生宿舍']
x5
  • 1
  • 2
水表名用量采集时间
246289XXX第四学生宿舍0.42019/1/1 00:15:00
246290XXX第四学生宿舍0.42019/1/1 00:30:00
246291XXX第四学生宿舍0.42019/1/1 00:45:00
246292XXX第四学生宿舍0.42019/1/1 01:00:00
246293XXX第四学生宿舍0.42019/1/1 01:15:00
............
2560037XXX第四学生宿舍0.72019/12/31 22:45:00
2560038XXX第四学生宿舍0.62019/12/31 23:00:00
2560039XXX第四学生宿舍0.62019/12/31 23:15:00
2560040XXX第四学生宿舍0.52019/12/31 23:30:00
2560041XXX第四学生宿舍1.22019/12/31 23:45:00

35039 rows × 3 columns

x6=x[x['水表名']=='茶园+']
x6
  • 1
  • 2
水表名用量采集时间
611260茶园+0.02019/1/3 16:15:00
611261茶园+0.02019/1/3 16:30:00
611262茶园+0.02019/1/3 16:45:00
611263茶园+0.02019/1/3 17:00:00
611264茶园+0.02019/1/3 17:15:00
............
2945006茶园+0.02019/12/31 22:45:00
2945007茶园+0.02019/12/31 23:00:00
2945008茶园+0.02019/12/31 23:15:00
2945009茶园+0.02019/12/31 23:30:00
2945010茶园+0.02019/12/31 23:45:00

34249 rows × 3 columns

x7=x[x['水表名']=='XXX4舍热泵热水舍']
x7
  • 1
  • 2
水表名用量采集时间
x21=x[x['水表名']=='XXX第一学生宿舍']
x21
  • 1
  • 2
水表名用量采集时间
220372XXX第一学生宿舍0.122019/1/1 00:15:00
220373XXX第一学生宿舍0.122019/1/1 00:30:00
220374XXX第一学生宿舍0.122019/1/1 00:45:00
220375XXX第一学生宿舍0.122019/1/1 01:00:00
220376XXX第一学生宿舍0.122019/1/1 01:15:00
............
2533541XXX第一学生宿舍0.402019/12/31 22:45:00
2533542XXX第一学生宿舍0.402019/12/31 23:00:00
2533543XXX第一学生宿舍0.502019/12/31 23:15:00
2533544XXX第一学生宿舍0.502019/12/31 23:30:00
2533545XXX第一学生宿舍0.502019/12/31 23:45:00

35039 rows × 3 columns

x22=x[x['水表名']=='XXX第二学生宿舍']
x22
  • 1
  • 2
水表名用量采集时间
229011XXX第二学生宿舍0.92019/1/1 00:15:00
229012XXX第二学生宿舍0.72019/1/1 00:30:00
229013XXX第二学生宿舍0.82019/1/1 00:45:00
229014XXX第二学生宿舍0.72019/1/1 01:00:00
229015XXX第二学生宿舍0.12019/1/1 01:15:00
............
2542373XXX第二学生宿舍0.12019/12/31 22:45:00
2542374XXX第二学生宿舍0.12019/12/31 23:00:00
2542375XXX第二学生宿舍0.22019/12/31 23:15:00
2542376XXX第二学生宿舍0.12019/12/31 23:30:00
2542377XXX第二学生宿舍0.12019/12/31 23:45:00

35039 rows × 3 columns

x21.set_index('采集时间', inplace=True)
x22.set_index('采集时间', inplace=True)
  • 1
  • 2
print(x21['用量'].dtypes,x21['水表名'])
print(x22['用量'].dtypes,x22['水表名'])
x_sum = x21.add(x22, fill_value=0)

# 打印结果
x_sum
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
float64 采集时间
2019/1/1 00:15:00      XXX第一学生宿舍
2019/1/1 00:30:00      XXX第一学生宿舍
2019/1/1 00:45:00      XXX第一学生宿舍
2019/1/1 01:00:00      XXX第一学生宿舍
2019/1/1 01:15:00      XXX第一学生宿舍
                         ...    
2019/12/31 22:45:00    XXX第一学生宿舍
2019/12/31 23:00:00    XXX第一学生宿舍
2019/12/31 23:15:00    XXX第一学生宿舍
2019/12/31 23:30:00    XXX第一学生宿舍
2019/12/31 23:45:00    XXX第一学生宿舍
Name: 水表名, Length: 35039, dtype: object
float64 采集时间
2019/1/1 00:15:00      XXX第二学生宿舍
2019/1/1 00:30:00      XXX第二学生宿舍
2019/1/1 00:45:00      XXX第二学生宿舍
2019/1/1 01:00:00      XXX第二学生宿舍
2019/1/1 01:15:00      XXX第二学生宿舍
                         ...    
2019/12/31 22:45:00    XXX第二学生宿舍
2019/12/31 23:00:00    XXX第二学生宿舍
2019/12/31 23:15:00    XXX第二学生宿舍
2019/12/31 23:30:00    XXX第二学生宿舍
2019/12/31 23:45:00    XXX第二学生宿舍
Name: 水表名, Length: 35039, dtype: object
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
水表名用量
采集时间
2019/1/1 00:15:00XXX第一学生宿舍XXX第二学生宿舍1.02
2019/1/1 00:30:00XXX第一学生宿舍XXX第二学生宿舍0.82
2019/1/1 00:45:00XXX第一学生宿舍XXX第二学生宿舍0.92
2019/1/1 01:00:00XXX第一学生宿舍XXX第二学生宿舍0.82
2019/1/1 01:15:00XXX第一学生宿舍XXX第二学生宿舍0.22
.........
2019/12/31 22:45:00XXX第一学生宿舍XXX第二学生宿舍0.50
2019/12/31 23:00:00XXX第一学生宿舍XXX第二学生宿舍0.50
2019/12/31 23:15:00XXX第一学生宿舍XXX第二学生宿舍0.70
2019/12/31 23:30:00XXX第一学生宿舍XXX第二学生宿舍0.60
2019/12/31 23:45:00XXX第一学生宿舍XXX第二学生宿舍0.60

35039 rows × 2 columns

x26=x[x['水表名']=='茶园+']
x26
  • 1
  • 2
水表名用量采集时间
611260茶园+0.02019/1/3 16:15:00
611261茶园+0.02019/1/3 16:30:00
611262茶园+0.02019/1/3 16:45:00
611263茶园+0.02019/1/3 17:00:00
611264茶园+0.02019/1/3 17:15:00
............
2945006茶园+0.02019/12/31 22:45:00
2945007茶园+0.02019/12/31 23:00:00
2945008茶园+0.02019/12/31 23:15:00
2945009茶园+0.02019/12/31 23:30:00
2945010茶园+0.02019/12/31 23:45:00

34249 rows × 3 columns

x21=x[x['水表名']=='XXX第一学生宿舍']
  • 1
x21
  • 1
水表名用量采集时间
220372XXX第一学生宿舍0.122019/1/1 00:15:00
220373XXX第一学生宿舍0.122019/1/1 00:30:00
220374XXX第一学生宿舍0.122019/1/1 00:45:00
220375XXX第一学生宿舍0.122019/1/1 01:00:00
220376XXX第一学生宿舍0.122019/1/1 01:15:00
............
2533541XXX第一学生宿舍0.402019/12/31 22:45:00
2533542XXX第一学生宿舍0.402019/12/31 23:00:00
2533543XXX第一学生宿舍0.502019/12/31 23:15:00
2533544XXX第一学生宿舍0.502019/12/31 23:30:00
2533545XXX第一学生宿舍0.502019/12/31 23:45:00

35039 rows × 3 columns

df_merged = pd.merge(x21, x26, on='采集时间', how='inner')
df_merged
  • 1
  • 2
水表名_x用量_x采集时间水表名_y用量_y
0XXX第一学生宿舍0.222019/1/3 16:15:00茶园+0.0
1XXX第一学生宿舍0.222019/1/3 16:30:00茶园+0.0
2XXX第一学生宿舍0.222019/1/3 16:45:00茶园+0.0
3XXX第一学生宿舍0.222019/1/3 17:00:00茶园+0.0
4XXX第一学生宿舍0.222019/1/3 17:15:00茶园+0.0
..................
34244XXX第一学生宿舍0.402019/12/31 22:45:00茶园+0.0
34245XXX第一学生宿舍0.402019/12/31 23:00:00茶园+0.0
34246XXX第一学生宿舍0.502019/12/31 23:15:00茶园+0.0
34247XXX第一学生宿舍0.502019/12/31 23:30:00茶园+0.0
34248XXX第一学生宿舍0.502019/12/31 23:45:00茶园+0.0

34249 rows × 5 columns

df_merged['总用水量'] = df_merged['用量_x'] + df_merged['用量_y']
df_merged
  • 1
  • 2
水表名_x用量_x采集时间水表名_y用量_y总用水量
0XXX第一学生宿舍0.222019/1/3 16:15:00茶园+0.00.22
1XXX第一学生宿舍0.222019/1/3 16:30:00茶园+0.00.22
2XXX第一学生宿舍0.222019/1/3 16:45:00茶园+0.00.22
3XXX第一学生宿舍0.222019/1/3 17:00:00茶园+0.00.22
4XXX第一学生宿舍0.222019/1/3 17:15:00茶园+0.00.22
.....................
34244XXX第一学生宿舍0.402019/12/31 22:45:00茶园+0.00.40
34245XXX第一学生宿舍0.402019/12/31 23:00:00茶园+0.00.40
34246XXX第一学生宿舍0.502019/12/31 23:15:00茶园+0.00.50
34247XXX第一学生宿舍0.502019/12/31 23:30:00茶园+0.00.50
34248XXX第一学生宿舍0.502019/12/31 23:45:00茶园+0.00.50

34249 rows × 6 columns

df_merged1 = pd.merge(x21, x26, on='采集时间', how='outer')
df_merged1
  • 1
  • 2
水表名_x用量_x采集时间水表名_y用量_y
0XXX第一学生宿舍0.122019/1/1 00:15:00NaNNaN
1XXX第一学生宿舍0.122019/1/1 00:30:00NaNNaN
2XXX第一学生宿舍0.122019/1/1 00:45:00NaNNaN
3XXX第一学生宿舍0.122019/1/1 01:00:00NaNNaN
4XXX第一学生宿舍0.122019/1/1 01:15:00NaNNaN
..................
35034XXX第一学生宿舍0.402019/12/31 22:45:00茶园+0.0
35035XXX第一学生宿舍0.402019/12/31 23:00:00茶园+0.0
35036XXX第一学生宿舍0.502019/12/31 23:15:00茶园+0.0
35037XXX第一学生宿舍0.502019/12/31 23:30:00茶园+0.0
35038XXX第一学生宿舍0.502019/12/31 23:45:00茶园+0.0

35039 rows × 5 columns

df_merged1['用量_y'] = df_merged1['用量_y'].replace(np.nan, 0)
df_merged1
# df_merged1['总用水量'] = df_merged1['用量_x'] + df_merged1['用量_y']
# df_merged1
  • 1
  • 2
  • 3
  • 4
水表名_x用量_x采集时间水表名_y用量_y总用水量
0XXX第一学生宿舍0.122019/1/1 00:15:00NaN0.00.12
1XXX第一学生宿舍0.122019/1/1 00:30:00NaN0.00.12
2XXX第一学生宿舍0.122019/1/1 00:45:00NaN0.00.12
3XXX第一学生宿舍0.122019/1/1 01:00:00NaN0.00.12
4XXX第一学生宿舍0.122019/1/1 01:15:00NaN0.00.12
.....................
35034XXX第一学生宿舍0.402019/12/31 22:45:00茶园+0.00.40
35035XXX第一学生宿舍0.402019/12/31 23:00:00茶园+0.00.40
35036XXX第一学生宿舍0.502019/12/31 23:15:00茶园+0.00.50
35037XXX第一学生宿舍0.502019/12/31 23:30:00茶园+0.00.50
35038XXX第一学生宿舍0.502019/12/31 23:45:00茶园+0.00.50

35039 rows × 6 columns

df_merged1['总用水量'] = df_merged1['用量_x'] + df_merged1['用量_y']
df_merged1
  • 1
  • 2
水表名_x用量_x采集时间水表名_y用量_y总用水量
0XXX第一学生宿舍0.122019/1/1 00:15:00NaN0.00.12
1XXX第一学生宿舍0.122019/1/1 00:30:00NaN0.00.12
2XXX第一学生宿舍0.122019/1/1 00:45:00NaN0.00.12
3XXX第一学生宿舍0.122019/1/1 01:00:00NaN0.00.12
4XXX第一学生宿舍0.122019/1/1 01:15:00NaN0.00.12
.....................
35034XXX第一学生宿舍0.402019/12/31 22:45:00茶园+0.00.40
35035XXX第一学生宿舍0.402019/12/31 23:00:00茶园+0.00.40
35036XXX第一学生宿舍0.502019/12/31 23:15:00茶园+0.00.50
35037XXX第一学生宿舍0.502019/12/31 23:30:00茶园+0.00.50
35038XXX第一学生宿舍0.502019/12/31 23:45:00茶园+0.00.50

35039 rows × 6 columns

# 创建一个包含多个子图的图形
fig, axes = plt.subplots(nrows=4 ,ncols=2)

# 在第一个子图中绘制数据
step = len(x11) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[0, 0].set_xticks(xtick_positions)
axes[0, 0].set_xticklabels(xticks)
axes[0, 0].plot(x11['采集时间'],x11['用量'],color='black',linewidth=0.1)
axes[0, 0].set_title('XXX第一学生宿舍')

# 在第二个子图中绘制数据
step = len(x12) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[0, 1].set_xticks(xtick_positions)
axes[0, 1].set_xticklabels(xticks)
axes[0, 1].plot(x12['采集时间'],x12['用量'],color='black',linewidth=0.1)
axes[0, 1].set_title('XXX第二学生宿舍')

# 在第三个子图中绘制数据
step = len(x13) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[1, 0].set_xticks(xtick_positions)
axes[1, 0].set_xticklabels(xticks)
axes[1, 0].plot(x13['采集时间'],x13['用量'],color='black',linewidth=0.1)
axes[1, 0].set_title('XXX第三学生宿舍')

# 在第四个子图中绘制数据
step = len(x14) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[1, 1].set_xticks(xtick_positions)
axes[1, 1].set_xticklabels(xticks)
axes[1, 1].plot(x14['采集时间'],x14['用量'],color='black',linewidth=0.1)
axes[1, 1].set_title('XXX第四学生宿舍')


# 在第五个子图中绘制数据
step = len(x15) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[2, 0].set_xticks(xtick_positions)
axes[2, 0].set_xticklabels(xticks)
axes[2, 0].plot(x15['采集时间'],x15['用量'],color='black',linewidth=0.1)
axes[2, 0].set_title('XXX第五学生宿舍')

# 在第六个子图中绘制数据
step = len(x17) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[2, 1].set_xticks(xtick_positions)
axes[2, 1].set_xticklabels(xticks)
axes[2, 1].plot(x17['采集时间'],x17['用量'],color='black',linewidth=0.1)
axes[2, 1].set_title('XXX第七学生宿舍')

# 在第七个子图中绘制数据
step = len(x18) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[3, 0].set_xticks(xtick_positions)
axes[3, 0].set_xticklabels(xticks)
axes[3, 0].plot(x18['采集时间'],x18['用量'],color='black',linewidth=0.1)
axes[3, 0].set_title('XXX第八学生宿舍')

# 在第八个子图中绘制数据
step = len(x19) // num_ticks  # 计算刻度步长
xtick_positions = [i * step for i in range(num_ticks)]  # 生成刻度位置
axes[3, 1].set_xticks(xtick_positions)
axes[3, 1].set_xticklabels(xticks)
axes[3, 1].plot(x19['采集时间'],x19['用量'],color='black',linewidth=0.1)
axes[3, 1].set_title('XXX第九学生宿舍')
# 调整子图之间的间距
plt.tight_layout()

# 显示图形
plt.show()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

在这里插入图片描述

from datetime import datetime
ans=[0]*24
for i in range(len(x_merged)):
    # 采集时间字符串
    time_str = x_merged ['采集时间'][i]

    # 将时间字符串转换为datetime对象
    time_obj = datetime.strptime(time_str, '%Y/%m/%d %H:%M:%S')

    # 提取小时
    hour = time_obj.hour
    ans[hour]+= x_merged['总用水量'][i]
    # 打印结果
#     print(f"当前是第{hour}个小时")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述

from datetime import datetime
ans=[0]*24
for i in range(2000):
    # 采集时间字符串
    time_str = x_merged ['采集时间'][i]

    # 将时间字符串转换为datetime对象
    time_obj = datetime.strptime(time_str, '%Y/%m/%d %H:%M:%S')

    # 提取小时
    hour = time_obj.hour
    day = time_obj.day
    ans[hour]+= x_merged['总用水量'][i]
    if day == 60:
        break
    # 打印结果
#     print(f"当前是第{hour}个小时")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/854920
推荐阅读
相关标签
  

闽ICP备14008679号