pyecharts画出豆瓣top250电影排名评分人数三维度散点图
时间: 2023-06-26 19:04:37 浏览: 64
以下是使用pyecharts画出豆瓣top250电影排名评分人数三维度散点图的代码。
```python
import pandas as pd
from pyecharts import Scatter3D
# 读取数据
data = pd.read_csv('douban_top250.csv')
# 绘制散点图
scatter3D = Scatter3D("豆瓣Top250电影", width=1200, height=600)
scatter3D.add("", data[['rank', 'rating', 'votes']].values, is_visualmap=True,
visual_range=[0, 1000000], visual_range_color=['#d94e5d', '#eac736', '#50a3ba'])
scatter3D.set_global_opts(title_opts={"text": "豆瓣Top250电影"})
scatter3D.render("douban_top250.html")
```
需要注意的是,上述代码中读取的数据文件`douban_top250.csv`需要自己准备,且需要包含排名、评分和评分人数这三列数据。最后会生成一个名为`douban_top250.html`的html文件,可以在浏览器中打开查看。
相关问题
pyecharts画出豆瓣top250电影排名、评分、人数三维度的散点图
可以使用pyecharts中的Scatter3D来画出豆瓣top250电影排名、评分、人数三维度的散点图。首先需要获取数据,可以使用豆瓣API或者爬虫等方式获取数据,这里为了方便起见,直接使用已经爬取好的数据。
```python
import pandas as pd
from pyecharts import Scatter3D
# 读取数据
df = pd.read_csv('douban_top250.csv')
# 定义x、y、z坐标轴
x_data = list(df['排名'])
y_data = list(df['评分'])
z_data = list(df['评价人数'])
# 定义散点图
scatter3D = Scatter3D("豆瓣top250电影排名、评分、人数三维度的散点图", width=800, height=600)
# 添加坐标轴数据和散点图数据
scatter3D.add("", x_data, y_data, z_data, is_visualmap=True, visual_range=[0, 1000000], visual_range_color=['#00ff00', '#ff0000'])
# 保存图表
scatter3D.render("douban_top250.html")
```
其中,`douban_top250.csv`是已经爬取好的豆瓣top250电影数据,包括排名、电影名称、评分、评价人数等信息。在这里,我们只需要使用排名、评分、评价人数这三个维度的数据。`Scatter3D`用于绘制三维散点图,`x_data`、`y_data`、`z_data`分别对应三个维度的数据,`is_visualmap`表示是否使用视觉映射组件,`visual_range`表示视觉映射组件的范围,`visual_range_color`表示视觉映射组件的颜色范围。最后,将图表保存在`douban_top250.html`文件中。
可视化画出豆瓣电影前10数据的散点图
好的,为了画出豆瓣电影前10数据的散点图,我们需要采集数据并进行处理。这里我使用 Python 语言进行数据采集和处理,使用 matplotlib 库进行画图。
首先,我们需要安装一些必要的 Python 库,包括 requests、pandas 和 matplotlib。你可以在终端或命令行中使用以下命令进行安装:
```
pip install requests pandas matplotlib
```
然后,我们需要编写 Python 代码来采集数据并进行处理和画图。以下是完整的代码:
```python
import requests
import pandas as pd
import matplotlib.pyplot as plt
# 定义要采集的 URL 和请求头
url = 'https://movie.douban.com/j/search_subjects'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 定义请求参数,包括电影类型和数量
params = {
'type': 'movie',
'tag': '热门',
'sort': 'recommend',
'page_limit': '10',
'page_start': '0'
}
# 发送 GET 请求,获取数据
response = requests.get(url, headers=headers, params=params)
data = response.json()['subjects']
# 将数据转换为 Pandas DataFrame 格式
df = pd.DataFrame(data)
# 绘制散点图,横轴为评分,纵轴为评论数量
plt.scatter(df['rate'], df['collect_count'])
# 添加标题和轴标签
plt.title('Top 10 Douban Movies')
plt.xlabel('Rating')
plt.ylabel('Number of Comments')
# 显示图形
plt.show()
```
在以上代码中,我们首先定义了要采集的 URL 和请求头,然后定义了请求参数,包括电影类型和数量。然后,我们发送 GET 请求,获取数据,并将数据转换为 Pandas DataFrame 格式。最后,我们使用 matplotlib 库绘制散点图,并添加标题和轴标签,最后显示图形。
运行以上代码,就可以得到豆瓣电影前10数据的散点图了。