parent
f87a8b8888
commit
b2ec48f5e6
@ -0,0 +1,67 @@
|
||||
from pyecharts.charts import Bar, Page
|
||||
from pyecharts import options as opts
|
||||
import pandas as pd
|
||||
from pyecharts.components import Table
|
||||
|
||||
df = pd.read_csv('export.csv')
|
||||
|
||||
df_sorted = df.sort_values(by='rating', ascending=False)#评分降序
|
||||
|
||||
#转为列表,获取电影名称、评分、链接和其他信息
|
||||
movies = df_sorted['title'].tolist()
|
||||
ratings = df_sorted['rating'].tolist()
|
||||
links = df_sorted['link'].tolist()
|
||||
other_info = df_sorted[['type', 'country', 'year', 'director', 'time', 'actor']].values.tolist()
|
||||
|
||||
#构建 tooltip 格式,光标位置显示信息
|
||||
tooltip_formatter = '''
|
||||
{movie}<br>
|
||||
评分: {rating}<br>
|
||||
'''.format(
|
||||
movie='{b}',
|
||||
rating='{c}',
|
||||
)
|
||||
|
||||
#创建柱状图对象
|
||||
bar = (
|
||||
Bar()
|
||||
.add_xaxis(movies)
|
||||
.add_yaxis("评分", ratings, label_opts=opts.LabelOpts(is_show=False))
|
||||
.set_global_opts(
|
||||
title_opts=opts.TitleOpts(title="电影评分排行榜"),
|
||||
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-45)),
|
||||
tooltip_opts=opts.TooltipOpts(formatter=tooltip_formatter),
|
||||
yaxis_opts=opts.AxisOpts(min_=8),
|
||||
datazoom_opts=[opts.DataZoomOpts(type_="slider", range_start=0, range_end=100)],
|
||||
)
|
||||
.set_series_opts(#标记线
|
||||
markline_opts=opts.MarkLineOpts(
|
||||
data=[
|
||||
opts.MarkLineItem(type_="average", name="平均值"),
|
||||
opts.MarkLineItem(type_="max", name="最大值"),
|
||||
opts.MarkLineItem(type_="min", name="最小值"),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
#创建表格数据
|
||||
table_data = []
|
||||
for i in range(len(movies)):
|
||||
row = [movies[i], ratings[i], links[i]] + other_info[i]
|
||||
table_data.append(row)
|
||||
|
||||
#创建表格对象
|
||||
table = (
|
||||
Table()
|
||||
.add(["电影名称", "评分", "链接", "类型", "国家", "年份", "导演", "时长", "演员"], table_data)
|
||||
.set_global_opts(
|
||||
title_opts=opts.ComponentTitleOpts(title="电影信息表格"),
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
#生成HTML文件
|
||||
page = Page()
|
||||
page.add(bar,table)
|
||||
page.render("Movie.html")
|
Loading…
Reference in new issue