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 12:04:33 浏览: 173
可以将代码进行如下优化:
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文件来查看折线图。
pyecharts可视化分析项目
Pyecharts是一个基于Python的可视化库,可以帮助我们通过代码生成各种各样的图表,如折线图、柱状图、饼图、地图等等。下面是一个简单的Pyecharts可视化分析项目的示例:
1. 数据准备
首先,我们需要准备一些数据,用于生成图表。这里我们以某个公司2019年每月的销售额为例,假设数据保存在一个名为“sales.csv”的文件中,格式如下:
```
month,sales
2019-01,10000
2019-02,15000
2019-03,20000
2019-04,25000
2019-05,30000
2019-06,35000
2019-07,40000
2019-08,45000
2019-09,50000
2019-10,55000
2019-11,60000
2019-12,65000
```
2. 导入库
我们需要导入以下库:
```python
import pandas as pd
from pyecharts.charts import Line, Bar
from pyecharts import options as opts
```
3. 数据读取
读取“sales.csv”文件中的数据,并转换成Pandas的DataFrame格式:
```python
df = pd.read_csv("sales.csv", parse_dates=['month'])
```
4. 折线图
生成月销售额的折线图:
```python
line_chart = Line()
line_chart.add_xaxis(df['month'].dt.strftime('%Y-%m').tolist())
line_chart.add_yaxis("月销售额", df['sales'].tolist())
line_chart.set_global_opts(title_opts=opts.TitleOpts(title="2019年每月销售额折线图"))
line_chart.render("line_chart.html")
```
5. 柱状图
生成月销售额的柱状图:
```python
bar_chart = Bar()
bar_chart.add_xaxis(df['month'].dt.strftime('%Y-%m').tolist())
bar_chart.add_yaxis("月销售额", df['sales'].tolist())
bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="2019年每月销售额柱状图"))
bar_chart.render("bar_chart.html")
```
6. 结果展示
最后,我们可以在浏览器中打开生成的“line_chart.html”和“bar_chart.html”文件,查看生成的折线图和柱状图。
这只是一个简单的示例,实际上Pyecharts支持的图表类型非常丰富,可以根据需求自由组合,生成各种形式的可视化图表。
阅读全文