python学习站 /每日作业
阅读主题
正文字体
字体大小

2月27日作业

本节2270字2025-02-27 19:21:51

1. 使用饼图显示前100名大学中各种类型学校的占比

import openpyxl
wb = openpyxl.load_workbook("charts/2020年中国大学排名.xlsx")
sheet1 = wb["Sheet1"]
mr = sheet1.max_row
data1 ={}
for row in range(2,mr+1):
    leixing = sheet1.cell(row, 4).value
    if leixing not in data1:
        data1[leixing] = 1
    else:
        data1[leixing]+= 1
pie_data = []
for key in data1:
    pie_data.append((key,data1[key]))
#第二步制作饼图
from pyecharts.charts import Pie
from pyecharts import options
pie = Pie()
pie.add(
    "各种类型学校占比",
    pie_data,
)
pie.set_series_opts(
    label_opts=options.LabelOpts(
        formatter="{b}({d})%"
    )
)
pie.set_global_opts(
    legend_opts=options.LegendOpts(
        is_show=False
    ),
    title_opts=options.TitleOpts(
        title="前100名大学中各种类型学校的占比",
        pos_left="300"
    )
)
pie.render("charts/作业1饼图.html")

2. 使用柱状图显示不同类型学校的平均总分

#第一步,拿到数据
data2 = {}
lie = []
for row in range(2,mr+1):
    lie.append(leixing)
    leixing = sheet1.cell(row, 4).value
    zongfen = sheet1.cell(row, 5).value
    if leixing not in data2:
        data2[leixing] = zongfen
    else:
        data2[leixing]+= zongfen
for x in data2:
        data2[x] /= lie.count(x)
print(data2)
#结果{'综合': 364.8333333333333, '理工': 295.54761904761904, '师范': 281.2, '农业': 282.4, '林业': 242.0}
#第二步,制图
from pyecharts.charts import Bar
from pyecharts import options
bar = Bar()
x1 = []
y1 = []
for x in data2:
    x1.append(x)
    y1.append(data2[x])
print(x1,y1)
bar.add_xaxis(x1)
bar.add_yaxis("平均分数",y1)
bar.set_global_opts(
    #设置标题
    title_opts=options.TitleOpts(
        title="各类学校平均分",          #主标题
        text_align="center",                 #主标题和副标题的对齐方式:left,right,center
        pos_left="400",                     #设置标题位置:pos_left,post_right,pos_top,pos_bottom
    ),
    #设置图例
    legend_opts=options.LegendOpts(
        is_show=True,                      #是否显示
        pos_right=90,                       #设置图例位置
        pos_top=25,
        item_width=15,                      #设置图标宽度
    ),
    #设置X轴
    xaxis_opts=options.AxisOpts(
        name="学校类型"
    ),
    #设置Y轴
    yaxis_opts=options.AxisOpts(
        name="平均分数"
    ),
)
bar.render("charts/作业2柱状图.html")

网友评论

相关作品

  • 杂谈

    学习笔记,记录一些杂七杂八的东西...

    少校 ·