源代码

    1. from pyecharts import options as opts
    2. from pyecharts.charts import Pie
    3. import xlwings as xw
    4. import pandas as pd
    5. #读取excel文件中的数据
    6. def read_excel(path):
    7. pd.set_option('display.max_columns', None) #解决表格多列时中间省略显示问题(本程序用不到)
    8. pd.set_option('display.max_rows', None) #解决表格多行时中间省略显示问题(本程序用不到)
    9. pd.set_option('display.width', 5000) #解决表格打印换行
    10. #读取excel文件中的数据
    11. app = xw.App(visible = False, add_book = False)
    12. workbook = app.books.open(path)
    13. worksheet = workbook.sheets[0]
    14. values = worksheet.range("A1").expand().options(pd.DataFrame, index = False).value
    15. #print(values)
    16. workbook.close()
    17. app.quit()
    18. return values
    19. path = "pie_data.xlsx" #指定数据的文件路径绝对路径或相对路径
    20. values = read_excel(path) #调用read_excel模块读取数据
    21. #构造数据
    22. x_data = values['名称'].tolist()
    23. y_data = values['数量'].tolist()
    24. data = [[x_data[i], y_data[i]] for i in range(len(x_data))]
    25. print(data)
    26. print(len(data))
    27. #饼图的绘制
    28. c = (
    29. Pie()
    30. .add(
    31. "", #设置系列名称
    32. data, #设置数据
    33. center=["43%", "50%"], #设置图形所在的位置左右距离
    34. #radius=["40%", "75%"], #设置环形饼图
    35. rosetype="area" #设置为玫瑰图 radius 半径 area 面积
    36. )
    37. #.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"]) #设置颜色
    38. .set_global_opts(
    39. title_opts=opts.TitleOpts(title="Pie系列图的绘制"), #设置标题
    40. legend_opts=opts.LegendOpts( pos_top="10%", pos_left="80%",orient="vertical"), #设置图例
    41. )
    42. .set_series_opts(
    43. label_opts=opts.LabelOpts(formatter="{b}: {c} \n({d}%)"), #设置显示标签
    44. tooltip_opts=opts.TooltipOpts( #设置鼠标触发显示标签
    45. trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
    46. )
    47. )
    48. .render("Pie系列图的绘制-8.html")
    49. )