import pandas as pd from pyecharts.render import NotebookRender from pyecharts.charts import Line from pyecharts import options as opts # 读取数据 dates_year = df['上映年份'].str[:4] dates_ratings = df['电影评分'] # 统计每年的平均评分 data = pd.concat([dates_year, dates_ratings], axis=1) data.columns = ['year', 'rating'] data = data.groupby('year').mean().reset_index() # 绘制折线图 line = ( Line() .add_xaxis(data['year'].tolist()) .add_yaxis("电影评分", data['rating'].tolist()) .set_global_opts( title_opts=opts.TitleOpts(title="电影评分趋势图"), tooltip_opts=opts.TooltipOpts(trigger="axis"), xaxis_opts=opts.AxisOpts(type_="category"), yaxis_opts=opts.AxisOpts(type_="value"), ) ) bar.render_notebook() 优化代码
时间: 2023-06-25 09:04:33 浏览: 168
python数据分析与可视化 import pandas as pd import numpy as np import m
可以将代码进行如下优化:
1. 将数据读取和统计放在一起,避免不必要的变量声明。
2. 直接使用DataFrame的plot方法绘制折线图,无需使用pyecharts库。
3. 由于数据已经按年份进行了分组统计,因此不需要再次使用pyecharts库中的Line类进行绘图。
优化后的代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据并按年份统计平均评分
data = df.groupby(df['上映年份'].str[:4])['电影评分'].mean()
# 绘制折线图
data.plot(title='电影评分趋势图', xlabel='年份', ylabel='平均评分')
plt.show()
```
以上代码使用matplotlib库绘制折线图,并直接使用DataFrame的plot方法绘图,代码更为简洁。
阅读全文