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 15:04:33 浏览: 64
可以将代码进行如下优化:
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方法绘图,代码更为简洁。
相关问题
dates_year = df['上映年份'].str[:4] dates_ratings = df['电影评分'] print(dates_year.head(60)) 根据趋势用pyechart画出折线图
好的,你需要先安装pyecharts库,可以使用以下命令进行安装:
```
pip install pyecharts
```
然后你可以使用以下代码进行绘制折线图:
```python
import pandas as pd
from pyecharts.charts import Line
from pyecharts import options as opts
# 读取数据
df = pd.read_csv('movie_data.csv')
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"),
)
.render("rating_trend.html")
)
```
这段代码会生成一个HTML文件,里面包含了绘制出来的折线图。你可以用任何浏览器打开这个HTML文件来查看折线图。
给定一个csv文件,包含一个时间属性,以及对应的访客量,要求用pyecharts绘制成折线图
好的,我可以给你提供一个简单的代码示例:
```python
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line
# 读取csv文件
df = pd.read_csv('data.csv', parse_dates=['时间'])
# 创建折线图对象
line = Line()
# 添加x轴和y轴数据
line.add_xaxis(df['时间'].dt.strftime('%Y-%m-%d %H:%M:%S').tolist())
line.add_yaxis('访客量', df['访客量'].tolist())
# 设置全局配置项
line.set_global_opts(
title_opts=opts.TitleOpts(title='访客量折线图'),
xaxis_opts=opts.AxisOpts(name='时间'),
yaxis_opts=opts.AxisOpts(name='访客量'),
)
# 显示图表
line.render('line.html')
```
其中,`data.csv` 是包含时间和访客量数据的csv文件,`parse_dates` 参数会将时间列解析为 pandas 的时间类型。`Line` 类是 pyecharts 中的折线图类,我们通过 `add_xaxis` 方法添加 x 轴数据,通过 `add_yaxis` 方法添加 y 轴数据。`set_global_opts` 方法可以设置全局配置项,如标题、x轴和y轴名称等。最后,我们通过 `render` 方法将图表保存成 HTML 文件。