diff --git a/show.py b/show.py new file mode 100644 index 0000000..1ced004 --- /dev/null +++ b/show.py @@ -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}
+ 评分: {rating}
+'''.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") \ No newline at end of file