Pyecharts综合应用

 题目要求:

1.读取豆瓣.xlsx文件
2.根据电影名称,绘制出词云图(频率自选字段),可选前十部电影
3.绘制电影评分人数条形图(可使用分箱)
4.绘制出电影类型的各自占比(多类型的取第一种即可)
5.将前20部电影绘制成表格展示(pyecharts官网查询表格如何绘制)

一、读取文件

import re
import pandas as pd
import numpy as np
from pyecharts.globals import CurrentConfig,NotebookType
CurrentConfig.NOTEBOOK_TYPE =NotebookType.JUPYTER_LAB
import pyecharts.options as opts
from pyecharts.charts import WordCloud
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts.charts import Pie
from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts

# 1.读取豆瓣.xlsx文件
douban=pd.read_excel('./豆瓣.xlsx')
print(douban.head())

二、词云图

# 2.根据电影名称,绘制出词云图(频率自选字段),可选前十部电影
data1=douban[['电影名','评分人数']]
# print(data1)
data1['评分人数']=data1['评分人数'].str.replace('人评价','').astype(int)
data1['电影名']=data1['电影名'].str.replace(r'/.*','',regex=True).astype(str)
# print(data1.head(10))
# 转换格式
data1=data1.head(10).values.tolist()
# print(data1)
# 生成词云图数据
wordcloud=WordCloud()
wordcloud.add("",data1)
# 设置标题
wordcloud.set_global_opts(title_opts=opts.TitleOpts(title='前十部电影的词云图'))
wordcloud.load_javascript()
wordcloud.render_notebook()

三、条形图

 分箱的参考:

python数据分析之数据分箱_python 分箱-CSDN博客

# 3.绘制电影评分人数条形图(可使用分箱)
douban['人数']=douban['评分人数'].str.replace('人评价','').astype(int)
# douban['人数区间']=pd.cut(douban['人数'],bins=[100000,200000,300000,400000,500000,600000,700000,800000,900000,1000000,1100000,1200000,1300000,1400000,1500000,1600000,1700000,1800000,1900000,2000000,2100000,2200000,2300000,2400000,2500000,2600000,2700000,2800000,2900000,3000000])
# print(douban.head())
douban['人数等级']=pd.cut(douban['人数'],
                          bins=[0,500000,1000000,1500000,2000000,2500000,3000000],
                          labels=['0万以上','50万以上','100万以上','150万以上','200万以上','250万以上'])
# print(douban.head())
people_counts=douban['人数等级'].value_counts().sort_index()
# print(people_counts)
bar=Bar()
bar.add_xaxis(people_counts.index.tolist())
bar.add_yaxis("",people_counts.values.tolist(),category_gap='60%')
bar.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar.reversal_axis()
bar.set_global_opts(title_opts=opts.TitleOpts(title='电影评分的区间人数'))
bar.load_javascript()
bar.render_notebook()

四、饼图

# 4.绘制出电影类型的各自占比(多类型的取第一种即可)
douban['电影类型']=douban['类型'].str.split().str[0]
# print(douban.head())
# douban['电影类型'].value_counts()
movie_type=douban['电影类型'].value_counts().sort_index()
# print(movie_type)
pie=Pie()
pie.add("",[list(z) for z in zip(movie_type.index,movie_type.tolist())])
pie.set_global_opts(title_opts=opts.TitleOpts(title='电影类型的各自占比'))
pie.load_javascript()
pie.render_notebook()

五、表格

import re
headers=['排名','电影名','年份','评分','评分人数']
data2=douban[['排名','电影名','年份','评分','评分人数']]
# print(data2.head())
data2['电影名']=data2['电影名'].str.replace(r'/.*','',regex=True).astype(str)
print(data2.head())
table=Table()
table.add(headers,data2.head(20).values.tolist())
table.load_javascript()
table.render_notebook()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值