源代码
from pyecharts import options as optsfrom pyecharts.charts import Pieimport xlwings as xwimport pandas as pd#读取excel文件中的数据def read_excel(path):pd.set_option('display.max_columns', None) #解决表格多列时中间省略显示问题(本程序用不到)pd.set_option('display.max_rows', None) #解决表格多行时中间省略显示问题(本程序用不到)pd.set_option('display.width', 5000) #解决表格打印换行#读取excel文件中的数据app = xw.App(visible = False, add_book = False)workbook = app.books.open(path)worksheet = workbook.sheets[0]values = worksheet.range("A1").expand().options(pd.DataFrame, index = False).value#print(values)workbook.close()app.quit()return valuespath = "pie_data.xlsx" #指定数据的文件路径绝对路径或相对路径values = read_excel(path) #调用read_excel模块读取数据#构造数据x_data = values['名称'].tolist()y_data = values['数量'].tolist()data = [[x_data[i], y_data[i]] for i in range(len(x_data))]print(data)print(len(data))#饼图的绘制c = (Pie().add("", #设置系列名称data, #设置数据center=["43%", "50%"], #设置图形所在的位置左右距离#radius=["40%", "75%"], #设置环形饼图rosetype="area" #设置为玫瑰图 radius 半径 area 面积)#.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"]) #设置颜色.set_global_opts(title_opts=opts.TitleOpts(title="Pie系列图的绘制"), #设置标题legend_opts=opts.LegendOpts( pos_top="10%", pos_left="80%",orient="vertical"), #设置图例).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} \n({d}%)"), #设置显示标签tooltip_opts=opts.TooltipOpts( #设置鼠标触发显示标签trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)")).render("Pie系列图的绘制-8.html"))
