包导入和数据处理
import pandas as pd
import numpy as np
from pyecharts.charts import *
import pyecharts.options as opts
from pyecharts.charts import PictorialBar
picture_data=pd.read_excel('./excel /picture_data.xlsx',sheet_name='url')
picture_data.columns=['序号','机构名称','图片url']
all_data=pd.read_excel('./excel /picture_data.xlsx',sheet_name='data')
all_data=pd.merge(all_data,picture_data,on='机构名称')
all_data
象形柱形图
url=list(all_data['图片url'])
school_name=list(all_data['机构名称'])
school_data=list(all_data['数值'])
bar=(PictorialBar()
.add_xaxis(school_name)
.add_yaxis('',school_data
,label_opts=opts.LabelOpts(is_show=False)
,symbol=SymbolType.ROUND_RECT
,symbol_size=20
,symbol_repeat="fixed"
, symbol_offset=[0, -5]
, is_symbol_clip=True)
.set_global_opts(xaxis_opts=opts.AxisOpts(name_rotate=60,name="123456",axislabel_opts={"rotate":45}))
)
bar.render(f'./学校.html')
批量制作象形柱形图
for i in range(4):
url=list(all_data['图片url'])[i*4:(i+1)*4]
school_name=list(all_data['机构名称'])[i*4:(i+1)*4]
school_data=list(all_data['数值'])[i*4:(i+1)*4]
print(school_name)
bar=(PictorialBar()
.add_xaxis(school_name)
.add_yaxis(''
,[{"value": school_data[0],"symbol":f'image://{url[0]}'}
,{"value": school_data[1],"symbol": f'image://{url[1]}'}
,{"value": school_data[2],"symbol": f'image://{url[2]}'}
,{"value": school_data[3],"symbol":f'image://{url[3]}'}]
,label_opts=opts.LabelOpts(is_show=False)
,symbol_size=40
,symbol_repeat="fixed"
, symbol_offset=[0, -5]
, is_symbol_clip=True)
)
bar.render(f'./{i}四校.html')
第一张图
第二张图
第三张图
第四张图
关于象形柱状图其他美化可以参看echart官网或pyecharts官网
官网链接(在文章底部)