大胃王玫瑰图

数据可视化实验一

  • 实验要求

    根据热狗大胃王比赛成绩的数据,使用pyecharts绘制一个玫瑰图(南丁格尔图),并对生成的结果图表进行分析

  • 实验数据

    数据来源是各个年度热狗大胃王比赛前三名选手的成绩(数据文件:hot-dog-places.csv)

  • 实验代码

# 导入库
import pyecharts.options as opts
from pyecharts.charts import Polar
import csv

# 读取文件
hot_dog_places = "hot-dog-places.csv"
data = []
with open(hot_dog_places) as h:     # 打开文件
    reader = csv.reader(h)          # 读取文件中的数据
    for data_row in reader:         # 按行循环读取数据
        data.append(data_row)   # 以追加的方式形成数据列表
x = data[0]
y1 = [float(i) for i in data[1]]  # 转换数据列表中的元素为单精度浮点型,并赋值到y1
y2 = [float(i) for i in data[2]]
y3 = [float(i) for i in data[3]]

(
    Polar()
    .add_schema(
        # 极坐标系径向轴配置
        angleaxis_opts=opts.AngleAxisOpts(
            data=x, type_="category")      # 设置轴类型
    )
    # 标题
    .set_global_opts(title_opts=opts.TitleOpts(title="各年度热狗大胃王比赛前三名成绩", subtitle="李"))
    # 显示提示
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    # 数据类型为堆叠柱形
    .add("第一名", y1, type_="bar", stack="stack0")
    .add("第二名", y2, type_="bar", stack="stack0")
    .add("第三名", y3, type_="bar", stack="stack0")
    .render("统计结果.html")
)
  • 实验结果 - 图形可视化

  • 图形美化

    例如:由于默认的玫瑰图是按照逆时针绘制的,因此若想按照顺时针绘制,需要更改一下输出结果中的clockwise:false为clockwise:true即可。

    image-20220505113006088

posted @ 2022-05-05 11:33  星月故里yw  阅读(256)  评论(0)    收藏  举报