月度行业报告模板说明

此报告详细分析了2021年4月空调行业的市场情况,涵盖项目总数、总金额、区域分布、招标及中标单位排行、注册资本分布等关键数据。并基于历史数据预测未来趋势,指出潜在的市场高峰和低谷区域。
摘要由CSDN通过智能技术生成

根据用户输入的关键词和时间区间搜索出该类项目数据
以“空调”为例,时间范围为2021/4/1至2021/4/30,模板中数据皆为虚拟数据,数据形式均为Excel表格

一、本月市场分析

1、本月项目总体情况

(1)本月项目总数和总金额、金额分布

项目总数:招标公告(不重复)总数
总金额:招标公告(不重复)预算金额总和
数据形式为Excel表格,样例如下表 :
在这里插入图片描述
将上述所有的招标公告(不重复)根据预算金额划分为不同的规模区间,并统计各区间公告数量,样例如下表:
在这里插入图片描述

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
from bs4 import BeautifulSoup

plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

data1 = pd.read_excel(r"D:\report\data\1\1.1.1 本月项目预算金额区间分布.xlsx")
num = max(data1['项目数量'])
x_label = np.array(data1['项目规模(元)'])
y = np.array(data1['项目数量'])
x_value = np.arange(len(x_label))

fig = plt.figure(figsize=(8,8))
# 取消轴
plt.axis('off')  
# 添加灰色底色
plt.barh(x_value,color='#F5F5F5',height=0.25,width=num,align='center') 
# 蓝色条形图 
plt.barh(x_value,color='#0099DC',height=0.25,width=y,align='center')    
# 图上方加标签
for a,b,label in zip(y,x_value,x_label):  
    plt.text(0,b+0.5,s=label,ha='left',va='center',fontsize=15)
    plt.text(num,b+0.5,s=a,ha='right',va='center',fontsize=15,weight='bold')
plt.text(0,9.5,s='本月项目预算金额区间分布',weight='bold',size=22)
plt.savefig(r"D:\report\picture\1\1.1.1 本月项目预算金额区间分布.png")

在这里插入图片描述

(2)本月项目区域分布

项目数量:招标公告(不重复)数量
项目规模:预算金额总数(万元)
以excel表格形式给出每个省份的招标公告(不重复)数量和相应的预算金额总数,样例如下表:
在这里插入图片描述

def ChinaMap(num1, list1, title, html_path, png_path):
    map1 = Map()
    # max_最大数据范围, range_color 渐变颜色范围
    map1.set_global_opts(
        visualmap_opts=opts.VisualMapOpts(max_=max(num1), range_color=['#feeeed', '#d64f44'], pos_left='15%', pos_bottom='10%', item_height=100, item_width=20),
        title_opts=opts.TitleOpts(title=title, pos_left='center', item_gap=15, title_textstyle_opts=opts.TextStyleOpts(font_size=25))
        )
    map1.add(series_name=None, data_pair=list1, maptype="china", is_map_symbol_show=False, center=['10%', '10%'])
    map1.render(html_path)
    # 将引用地图改为本地修改过坐标的地图
    with open(html_path, "r", encoding="utf-8") as f:
        f = f.read()
        sp = BeautifulSoup(f, features="lxml")        
    label_list = sp.find_all('script', src='https://assets.pyecharts.org/assets/maps/china.js')
    for label in label_list:
        label["src"] = 'D:/report/temp/china.js' 
    with open(html_path, 'w') as fp:
        fp.write(sp.prettify())    
    # 将HTML文件渲染为png
    make_snapshot(snapshot, html_path, png_path, is_remove_html=True)
    
# 数量区域分布
data2 = pd.read_excel(r"D:\report\data\1\1.1.2 本月项目区域分布.xlsx")
province = data2['所在地(省份)']
num1 = data2['招标公告数量']
list1 = [list(z) for z in zip(province, num1)]
title1 = '本月项目数量全国分布图'
html_path = "D:/report/temp/map.html"
png_path = "D:/report/picture/1/1.1.2 本月项目区域分布1.png"
ChinaMap(num1, list1, title1, html_path, png_path)

# 金额区域分布
province = data2['所在地(省份)']
num2 = data2['预算金额总数(万元)']
list2 = [list(z) for z in zip(province, num2)]
title2 = '本月项目金额全国分布图'
html_path = "D:/report/temp/map.html"
png_path = "D:/report/picture/1/1.1.2 本月项目区域分布2.png"
ChinaMap(num2, list2, title2, html_path, png_path)

在这里插入图片描述
在这里插入图片描述

(3)本月项目中标金额排行榜

将所有中标公告根据中标金额进行排序,找出本月中标金额最高的三个项目,对其进行重点介绍
以excel表格形式给出三个项目的项目标题、所在地、中标金额(万元)、中标公布时间、招标单位、代理单位、中标单位,样例如下表:
在这里插入图片描述

data3 = pd.read_excel(r"D:\report\data\1\1.1.3 本月项目规模排行榜.xlsx")
xm1 = data3.iloc[0,:]
fig = plt.figure(figsize=(10,10))
plt.axis('off')

# 第一组
plt.text(0,1,s='1',weight='bold',size=30,bbox={'facecolor':'red', 'alpha':0.9, 'pad':5.5})
plt.text(0.05,1,s=xm1[0],weight='bold',size=30)
# 第二组
plt.text(0,0.85,s='所在地',weight='light',size=25,color='gray')
plt.text(0,0.78,s=xm1[1],weight='bold',size=25)
# 第三组
plt.text(0,0.68,s='中标金额(万元)',weight='light',size=25,color='gray')
plt.text(0.6,0.68,s='中标公布时间', weight='light', size=25, color='gray')
plt.text(0,0.61,s=xm1[2],weight='bold',size=25)
plt.text(0.6,0.61,s=xm1[3].strftime("%Y-%m-%d"),weight='bold',size=25)
# 第四组
plt.text(0,0.51,s='招标单位', weight='light', size=25, color='gray')
plt.text(0,0.44,s=xm1[4],weight='bold',size=25)
# 第五组
plt.text(0,0.34,s='代理单位', weight='light', size=25, color='gray')
plt.text(0,0.27,s=xm1[5],weight='bold',size=25)
# 第六组
plt.text(0,0.17,s='中标单位', weight='light', size=25, color='gray')
plt.text(0,0.1,s=xm1[6],weight='bold',size=25)
plt.savefig(r"D:\report\picture\1\1.1.3 本月项目规模排行榜.png")

在这里插入图片描述

2、本月招标单位分析

(1)招标单位排行榜

以excel表格形式给出招标单位、项目数量,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.2.1 招标单位排行榜.xlsx")
data = data.sort_values(by=['项目数量'], ascending=True)  # 降序排列
num = data['项目数量'][0]
x_label = np.array(data['招标单位'])
y = np.array(data['项目数量'])
x_value = np.arange(len(x_label))

fig = plt.figure(figsize=(6,6))
plt.axis('off')  # 取消轴
plt.barh(x_value,color='#F5F5F5',height=0.3,width=num,align='center')  # 添加灰色底色
plt.barh(x_value,color='#0099DC',height=0.3,width=y,align='center')    # 蓝色条形图
for a,b,label in zip(y,x_value,x_label):  # 图上方加标签
    plt.text(0,b+0.4,s=label,ha='left',va='center',fontsize=15)
    plt.text(num,b+0.4,s=a,ha='right',va='center',fontsize=18,weight='bold')
plt.text(0,5.2,s='空调',weight='bold',size=25)
plt.text(num-0.7,5.2,s='项目数量',weight='bold',size=15,color='gray')
plt.ylim(-0.5,5)
plt.savefig(r"D:\report\picture\1\1.2.1 招标单位排行榜.png")

在这里插入图片描述

(2)招标单位区域分布

以excel表格形式给出每个省份本月招标单位数,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.2.2 招标单位区域分布.xlsx")
province = data['所在地(省份)']
num3 = data['招标单位数量']
list3 = [list(z) for z in zip(province, num3)]
title3 = '招标单位区域分布'
html_path = "D:/report/temp/map.html"
png_path = "D:/report/picture/1/1.2.2 招标单位区域分布.png"
ChinaMap(num3, list3, title3, html_path, png_path)

在这里插入图片描述

(3)招标单位类型/行业分布

以excel表格形式给出单位类型、数量,取本月招标单位所属类型数量最多的前五位,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.2.3 招标单位类型.xlsx")
data = data.sort_values(by=['数量'], ascending=True)  # 降序排列
num = data['数量'][0]
x_label = np.array(data['单位类型'])
y = np.array(data['数量'])
x_value = np.arange(len(x_label))

fig = plt.figure(figsize=(7,7))
plt.axis('off')  # 取消轴
plt.barh(x_value,color='#F5F5F5',height=0.3,width=num,align='center')
plt.barh(x_value,color='#0099DC',height=0.3,width=y,align='center')
for a,b,label in zip(y,x_value,x_label):  # 图上方加标签
    plt.text(0,b+0.35,s=label,ha='left',va='center',fontsize=17)
    plt.text(num,b+0.35,s=a,ha='right',va='center',fontsize=17,weight='bold')
plt.text(0,5.2,s='本月项目数量TOP5采购行业',weight='bold',size=25)
plt.ylim(-0.5,5)
plt.savefig(r"D:\report\picture\1\1.2.3 招标单位类型.png")

在这里插入图片描述

(4)重点单位介绍

项目总金额:预算金额
以excel表格形式给出招标单位、企业类型、企业注册地、采购项目数量、项目总金额、中标企业数量、外省中标企业、流标记录数
按照采购项目数量大小进行排序,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.2.4 招标重点单位介绍.xlsx")
fig = plt.figure(figsize=(7,7))
plt.axis('off')
#第一组
plt.text(0,0.95,s='1',weight='bold',size=25,bbox={'facecolor':'red', 'alpha':0.9, 'pad':5.5})
plt.text(0.08,0.95,s=data.iloc[0,0],weight='bold',size=25)
# 第二组
plt.text(0,0.75,s='企业类型',weight='light',size=20,color='gray')
plt.text(0,0.66,s=data.iloc[0,1],weight='bold',size=20)
# 第三组
plt.text(0,0.52,s='企业注册地', weight='light', size=20, color='gray')
plt.text(0.7,0.52,s='采购项目数量', weight='light', size=20, color='gray')
plt.text(0,0.44,s=data.iloc[0,2],weight='bold',size=20)
plt.text(0.7,0.44,s=data.iloc[0,3],weight='bold',size=20)
# 第四组
plt.text(0,0.3,s='项目总金额(万元)', weight='light', size=20, color='gray')
plt.text(0.7,0.3,s='中标企业数量', weight='light', size=20, color='gray')
plt.text(0,0.22,s=data.iloc[0,4],weight='bold',size=20)
plt.text(0.7,0.22,s=data.iloc[0,5],weight='bold',size=20)
# 第五组
plt.text(0,0.08,s='外省中标企业', weight='light', size=20, color='gray')
plt.text(0.7,0.08,s='流标记录数', weight='light', size=20, color='gray')
plt.text(0,0,s=data.iloc[0,6],weight='bold',size=20)
plt.text(0.7,0,s=data.iloc[0,7],weight='bold',size=20)
plt.savefig(r"D:\report\picture\1\1.2.4 招标重点单位介绍.png")

在这里插入图片描述

3、本月中标单位分析

(1)中标单位排行榜

以excel表格形式给出中标单位、项目数量,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.3.1 中标单位排行榜.xlsx")
data = data.sort_values(by=['项目数量'], ascending=True)  # 降序排列
num = data['项目数量'][0]
x_label = np.array(data['中标单位'])
y = np.array(data['项目数量'])
x_value = np.arange(len(x_label))
fig = plt.figure(figsize=(6,6))
plt.axis('off')  # 取消轴
plt.barh(x_value,color='#F5F5F5',height=0.3,width=num,align='center')
plt.barh(x_value,color='#0099DC',height=0.3,width=y,align='center')
for a,b,label in zip(y,x_value,x_label):  # 图上方加标签
    plt.text(0,b+0.4,s=label,ha='left',va='center',fontsize=15)
    plt.text(num,b+0.4,s=a,ha='right',va='center',fontsize=18,weight='bold')
plt.text(0,5.2,s='空调',weight='bold',size=25)
plt.text(num-0.7,5.2,s='项目数量',weight='bold',size=15,color='gray')
plt.ylim(-0.5,5)
plt.savefig(r"D:\report\picture\1\1.3.1 中标单位排行榜.png")

在这里插入图片描述

(2)中标单位区域分布

以excel表格形式给出每个省份本月中标单位数,样例如下表:
在这里插入图片描述
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.3.2 中标单位区域分布.xlsx")
province = data['所在地(省份)']
num4 = data['中标单位数量']
list4 = [list(z) for z in zip(province, num4)]
title4 = '中标单位区域分布'
html_path = "D:/report/temp/map.html"
png_path = "D:/report/picture/1/1.3.2 中标单位区域分布.png"
ChinaMap(num4, list4, title4, html_path, png_path)

(3)中标单位类型/行业分布

以excel表格形式给出单位类型、数量,取本月中标单位所属类型数量最多的前五位,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.3.3 中标单位类型.xlsx")
data = data.sort_values(by=['数量'], ascending=True)  # 降序排列
num = data['数量'][0]
x_label = np.array(data['单位类型'])
y = np.array(data['数量'])
x_value = np.arange(len(x_label))

fig = plt.figure(figsize=(7,7))
plt.axis('off')  # 取消轴
plt.barh(x_value,color='#F5F5F5',height=0.3,width=num,align='center')  # 添加灰色底色
plt.barh(x_value,color='#0099DC',height=0.3,width=y,align='center')    # 蓝色条形图
for a,b,label in zip(y,x_value,x_label):  # 图上方加标签
    plt.text(0,b+0.35,s=label,ha='left',va='center',fontsize=17)
    plt.text(num,b+0.35,s=a,ha='right',va='center',fontsize=17,weight='bold')
plt.text(0,5.2,s='本月中标项目数量TOP5采购行业',weight='bold',size=23)
plt.ylim(-0.5,5)
plt.savefig(r"D:\report\picture\1\1.3.3 中标单位类型.png")

在这里插入图片描述

(4)中标单位注册资本分布

以excel表格形式给出本月中标企业资本分布、数量,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.3.4 中标单位注册资本分布.xlsx")
num = max(data['数量'])
x_label = np.array(data['资本分布'])
y = np.array(data['数量'])
x_value = np.arange(len(x_label))
fig = plt.figure(figsize=(8,8))
plt.axis('off')  # 取消轴
plt.barh(x_value,color='#F5F5F5',height=0.25,width=num,align='center')  # 添加灰色底色
plt.barh(x_value,color='#0099DC',height=0.25,width=y,align='center')    # 蓝色条形图
for a,b,label in zip(y,x_value,x_label):  # 图上方加标签
    plt.text(0,b+0.5,s=label,ha='left',va='center',fontsize=15)
    plt.text(num,b+0.5,s=a,ha='right',va='center',fontsize=15,weight='bold')
plt.text(0,9.5,s='本月中标企业注册资本分布',weight='bold',size=22)
plt.savefig(r"D:\report\picture\1\1.3.4 中标单位注册资本分布.png")

在这里插入图片描述

(5)重点单位介绍

以excel表格形式给出中标单位、企业类型、企业注册地、联系方式、注册资本(万元)、注册时间、中标项目数量、中标项目总金额(万元)
按照中标项目数量大小进行排序,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\1\1.3.5 中标重点单位介绍.xlsx")
fig = plt.figure(figsize=(7,7))
plt.axis('off')
#第一组
plt.text(0,0.95,s='1',weight='bold',size=25,bbox={'facecolor':'red', 'alpha':0.9, 'pad':5.5})
plt.text(0.08,0.95,s=data.iloc[0,0],weight='bold',size=25)
# 第二组
plt.text(0,0.75,s='企业类型',weight='light',size=20,color='gray')
plt.text(0,0.66,s=data.iloc[0,1],weight='bold',size=20)
# 第三组
plt.text(0,0.52,s='企业注册地', weight='light', size=20, color='gray')
plt.text(0.5,0.52,s='联系方式', weight='light', size=20, color='gray')
plt.text(0,0.44,s=data.iloc[0,2],weight='bold',size=20)
plt.text(0.5,0.44,s=data.iloc[0,3],weight='bold',size=20)
# 第四组
plt.text(0,0.3,s='注册资本(万元)', weight='light', size=20, color='gray')
plt.text(0.5,0.3,s='注册时间', weight='light', size=20, color='gray')
plt.text(0,0.22,s=data.iloc[0,4],weight='bold',size=20)
plt.text(0.5,0.22,s=data.iloc[0,5].strftime("%Y-%m-%d"),weight='bold',size=20)
# 第五组
plt.text(0,0.08,s='中标项目数量', weight='light', size=20, color='gray')
plt.text(0.5,0.08,s='中标项目总金额(万元)', weight='light', size=20, color='gray')
plt.text(0,0,s=data.iloc[0,6],weight='bold',size=20)
plt.text(0.5,0,s=data.iloc[0,7],weight='bold',size=20)
plt.savefig(r"D:\report\picture\1\1.3.5 中标单位注册资本分布.png")

在这里插入图片描述

二、整体市场分析

根据用户输入的关键词找出该类项目的近三年(之前两年全年加上今年已过去月份)数据
以“空调”为例,第一部分月报的时间范围为2021/4/1至2021/4/30,则整体分析的时间范围为2019/1/1至2021/4/30

1、月度项目数量

项目数量:该月发布的所有招标公告(不重复)数量
时间:最近三年,包括年月,按照时间早晚进行排序
以excel表格形式给出时间和相应的项目数量数据,样例如下表 :
在这里插入图片描述

data5 = pd.read_excel(r'D:\report\data\2\2.1 每月项目总数.xlsx')
y1 = data5['项目数量'][0:12]
y2 = data5['项目数量'][12:24]
y3 = data5['项目数量'][24:]
x = range(1, 13)
fig = plt.figure(figsize=(8,5))
plt.plot(x, y1, marker='o', markersize=4, label='2019年')
plt.plot(x, y2, marker='o', markersize=4, label='2020年')
plt.plot(range(1, len(y3)+1), y3, marker='o', markersize=4, color='red', label='2021年')
# x轴名称
plt.xlabel('月份', fontsize='xx-large', fontweight='bold')
# y轴名称
plt.ylabel('项目数量', fontsize='xx-large', fontweight='bold')
# 设置x轴标签
plt.xticks(x, ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'])
# 标题
plt.title('最近三年月度项目数量统计', fontsize=20, pad=20)
# 图例
plt.legend()
# 网格线
plt.grid()
plt.savefig(r"D:\report\picture\2\2.1 每月项目总数.png")

在这里插入图片描述
预测参考值=(前三月平均项目数量/同期前三月平均项目数量)* 同期项目数量
例如:2021年5月预测参考值=(2021年2、3、4月平均项目数量/2020年2、3、4月平均项目数量)* 2020年5月项目数量

以一个阈值(例如2021年4月项目数量的10%)判断下月走势。若5月预测值减去4月项目数量大于阈值,则预测为有上涨趋势;若4月项目数量减去5月预测值大于阈值,则预测为有下降趋势;两者之差的绝对值小于阈值,则预测为保持平稳。

给出一年中哪个季度可能是高峰,哪个季度可能是低谷
例如:如果前两年的一季度总数都最高,则认为一季度是高峰,否则不作描述

2、项目区域分布

根据该类项目近三年各省项目总数绘制全国热力地图,并文字说明该类项目主要集中地区(取最高的三个)
项目数量:招标公告(不重复)数量
以excel表格形式给出每个省份的招标公告(不重复)数量,样例如下表:
在这里插入图片描述

data = pd.read_excel(r"D:\report\data\2\2.2 项目区域分布.xlsx")
province = data['所在地(省份)']
num5 = data['招标公告数量']
list5 = [list(z) for z in zip(province, num5)]
title5 = '项目区域分布'
html_path = "D:/report/temp/map.html"
png_path = "D:/report/picture/2/2.2 项目区域分布.png"
ChinaMap(num5, list5, title5, html_path, png_path)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值