代码拉取完成,页面将自动刷新
from pyecharts.charts import Bar,Line,Pie,Tab,Timeline
from pyecharts import options as opts
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType
#表格组件
from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts
import pandas as pd
import os
'''
1.1添加了y轴坐标线,减小了不同系列的柱间距离,添加了表格的Tab
1.2β添加了Pie饼图,调整了饼图的排版
'''
path=os.getcwd()
file=os.listdir(path)
df=pd.read_excel(path+'\\'+file[0],dtype="object")
x=df.columns.values.tolist()[1:]
y=df.loc[0].tolist()[1:]
(max_row,max_col)=df.shape
#V1版本开始支持链式调用
#InitOpts初始化配置
bar1=(
Bar(init_opts=opts.InitOpts(width='1920px',
height='860px',
page_title="公司名称",
)
)
.add_xaxis(x)
## .add_yaxis(df.loc[0].tolist()[0],y)
#全局配置
.set_global_opts(title_opts=\
opts.TitleOpts(title="公司资源统计",subtitle="福州区域"+file[0][:10]),
#区域缩放配置项,同时"slider"与"inside"
datazoom_opts=[opts.DataZoomOpts(),opts.DataZoomOpts(type_="inside"),],
#提示框配置项
tooltip_opts=opts.TooltipOpts(is_show=True,trigger="item",trigger_on="mousemove|click"),
#坐标轴指示器配置项
axispointer_opts=opts.AxisPointerOpts(is_show=True,type_="shadow"),
#y轴轴线设置,SplitLineOpts显示轴线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
)
)
#循环添加行数据,gap为不同系列的柱间距离
for i in range(0,max_row):
bar1=bar1.add_yaxis(df.loc[i].tolist()[0],df.loc[i].tolist()[1:],gap="0%", )
#工具箱
#bar1.set_global_opts(toolbox_opts=opts.ToolboxOpts(is_show=True))
##bar1.render('中联立信乐呵资源.html')
#==============添加Dataset_pie数据集饼图==============
def pie_base()->Pie():
global pie_data_nested
#初始化list,创建嵌套列表
pie_data_nested=[]
pie_data_nested.append(df.columns.values.tolist())
#将dataframe的数据变为数据集
for i in range(0,max_row):
pie_data_nested.append(df.loc[i].tolist())
#初始化饼图,添加数据集
pie_chart=(
Pie(init_opts=opts.InitOpts(width='2560px',height='1080px'))
.add_dataset(source=pie_data_nested)
)
#传递Pie位置信息参数
def pie_pos():
if 0<=i<=6:
return [str(11+11*i)+"%",str(25)+"%"]
elif 6<i<=13 :
return [str(11*(i-6))+"%",str(50)+"%"]
else:
return [str(11*(i-13))+"%",str(75)+"%"]
#1.2之后可以优化写法,将series_name和encode换成在数据集pie_data_nested中的循环
#循换添加dataframe的数据
for i in range(0,max_col-1):
pie_chart=pie_chart.add(
series_name=df.columns.values.tolist()[1:][i],
data_pair=[],
#饼图大小
radius=60,
#放置饼图位置,[x,y]控制坐标
center=pie_pos(),
encode={"itemName":df.columns.values.tolist()[0], "value":df.columns.values.tolist()[i+1]},)
pie_chart.set_global_opts(title_opts=opts.TitleOpts(title="公司资源统计",subtitle="福州区域"+file[0][:10]),
#滚动翻页的图例,对于容器高宽10%
legend_opts=opts.LegendOpts(type_="scroll",pos_left="10%"),
)
return pie_chart
#===============添加Table表格==============
def table_base()->Table:
table_chart=Table()
#初始化list,创建嵌套列表
nested_list=[]
for i in range(0,max_row):
nested_list.append(df.loc[i].tolist())
table_chart.add(df.columns.values.tolist(),nested_list)
table_chart.set_global_opts(
title_opts=ComponentTitleOpts(title="Table-基本示例",\
subtitle="我是副标题支持换行哦"))
return table_chart
#==============添加时间线===============
def tt()->Timeline:
tl=Timeline(init_opts=opts.InitOpts(width='1920%',height='720%'))
#垂直,左边距离,垂直高度
tl.add_schema(orient="vertical",pos_left="95%",height="100%",)
tl.add(bar1,"今天")
tl.add(bar1,"昨天")
return tl
#=================添加Tab================
tab = Tab(page_title="公司",)
tab.add(bar1,"柱状图")
tab.add(pie_base(),"饼图")
tab.add(table_base(),"表格")
tab.add(tt(),"时间线")
tab.render('公司资源.html')
print("完成")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。