大胃王玫瑰图
数据可视化实验一
-
实验要求
根据热狗大胃王比赛成绩的数据,使用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即可。