Python绘制豆瓣top250电影评分分布直方图需要x轴每个柱子对应一个评分并在每个柱子上表明数值

时间: 2023-09-08 20:05:20 浏览: 74
### 回答1: 下面是一个实现绘制豆瓣Top250电影评分分布直方图的Python代码: ```python import requests from bs4 import BeautifulSoup import matplotlib.pyplot as plt # 获取豆瓣Top250电影数据 def get_movies(): movies = [] for i in range(0, 250, 25): url = f'https://movie.douban.com/top250?start={i}&filter=' r = requests.get(url) soup = BeautifulSoup(r.text, 'html.parser') movie_list = soup.find('ol', class_='grid_view').find_all('li') for movie in movie_list: name = movie.find('span', class_='title').text rating = float(movie.find('span', class_='rating_num').text) movies.append((name, rating)) return movies # 绘制直方图 def plot_histogram(movies): ratings = [movie[1] for movie in movies] bins = [i * 0.5 for i in range(0, 11)] plt.hist(ratings, bins=bins, edgecolor='black') plt.xticks(bins) plt.xlabel('评分') plt.ylabel('电影数量') plt.title('豆瓣Top250电影评分分布直方图') for i in range(len(bins)): plt.text(bins[i], plt.hist(ratings, bins=bins, edgecolor='black')[0][i], plt.hist(ratings, bins=bins, edgecolor='black')[0][i], ha='center', va='bottom') # 获取电影数据并绘制直方图 movies = get_movies() plot_histogram(movies) plt.show() ``` 这段代码使用requests和BeautifulSoup库获取豆瓣Top250电影数据,并使用Matplotlib库绘制直方图。在绘制直方图时,我们可以将评分作为x轴,将电影数量作为y轴,使用plt.hist()绘制直方图,使用plt.xticks()设置x轴刻度,使用plt.xlabel()和plt.ylabel()设置x轴和y轴标签,使用plt.title()设置图表标题,使用plt.text()在每个柱子上表明数值。 ### 回答2: 要绘制豆瓣top250电影评分分布直方图,需要使用Python中的绘图库,例如matplotlib。下面是一个使用matplotlib库绘制豆瓣top250电影评分分布直方图的示例代码: ```python import matplotlib.pyplot as plt # 假设豆瓣top250电影的评分数据如下 ratings = [9.4, 9.3, 9.2, 9.2, 9.1, 9.0, 8.9, 8.9, 8.9, 8.8, 8.8, 8.8, 8.7, 8.7, 8.7, 8.6, 8.6, 8.6, 8.5, 8.5, 8.5, 8.4, 8.4, 8.4, 8.4, 8.3, 8.3, 8.3, 8.2, 8.2, 8.2, 8.2, 8.2, 8.1, 8.1, 8.1, 8.1, 8.1, 8.1, 8.1, 8.0, 8.0, 8.0, 8.0, 7.9, 7.9, 7.9, 7.9, 7.9, 7.8, 7.8, 7.8, 7.8, 7.8, 7.8, 7.8, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.2, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9] # 设置直方图的x轴标签和y轴标签 plt.xlabel('评分') plt.ylabel('电影数量') # 绘制直方图 plt.hist(ratings, bins=10, edgecolor='black') # 设置10个柱子 # 在每个柱子上显示标签 for i in range(len(ratings)): plt.text(ratings[i], plt.hist(ratings, bins=10)[0][i], str(ratings[i]), ha='center', va='bottom') # 显示图形 plt.show() ``` 这段代码使用matplotlib库中的`plt.hist()`函数绘制直方图,其中`ratings`列表为评分数据,`bins`参数指定柱子的个数,`edgecolor`参数设置柱子边缘的颜色。 通过使用`plt.text()`函数,在每个柱子上显示对应评分的数值。`plt.text()`函数中的参数分别为x坐标、y坐标、文本内容、水平对齐方式和垂直对齐方式。 最后,使用`plt.show()`函数显示图形。 以上代码经过运行后,将输出直方图,x轴每个柱子对应一个评分,并且在每个柱子上标明相应的评分数值。 ### 回答3: 要绘制豆瓣top250电影评分分布直方图,可以使用Python中的matplotlib库来实现。首先,需要导入matplotlib库和numpy库。 ``` Python import matplotlib.pyplot as plt import numpy as np ``` 然后,定义一个包含top250电影评分的列表,如`ratings`。 ``` Python ratings = [9.6, 9.5, 9.4, 9.3, 9.3, 9.2, 9.2, 9.2, 9.1, 9.1, 9.1, 9.0, 9.0, 9.0, 8.9, 8.9, 8.9, 8.8, 8.8, 8.8, 8.8, 8.8, 8.7, 8.7, 8.7, 8.7, 8.7, 8.7, 8.7, 8.6, 8.6, 8.6, 8.6, 8.6, 8.6, 8.6, 8.6, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.4, 8.4, 8.4, 8.4, 8.4, 8.4, 8.4, 8.4, 8.4, 8.4, 8.4, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.2, 8.1, 8.1, 8.1, 8.1, 8.1, 8.1, 8.1, 8.1, 8.0, 8.0, 8.0, 8.0, 8.0, 8.0, 8.0, 8.0, 8.0, 8.0, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.8, 7.8, 7.8, 7.8, 7.8, 7.8, 7.8, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4] ``` 接下来,可以使用numpy库的histogram函数计算各个评分范围的数量,并返回x轴上的坐标和对应的数量。 ``` Python ratings = np.round(ratings) # 将评分取整 x = np.unique(ratings) # 去除重复的评分,得到x轴上的坐标 counts = np.histogram(ratings, bins=len(x))[0] # 计算每个评分的数量 ``` 最后,使用matplotlib的bar函数绘制直方图,并在每个柱子上标明对应的数量。 ``` Python plt.bar(x, counts) for i in range(len(x)): plt.text(x[i], counts[i] + 1, str(counts[i]), ha='center') plt.xlabel('评分') plt.ylabel('数量') plt.title('豆瓣top250电影评分分布直方图') plt.show() ``` 这样就可以得到每个柱子对应一个评分,并在每个柱子上表明数值的豆瓣top250电影评分分布直方图。

相关推荐

最新推荐

recommend-type

【Python】豆瓣电影TOP250数据规律分析(Pearson相关系数、折线图、条形图、直方图)

1、数据集预览 原创文章 113获赞 137访问量 7万+ 关注 私信 展开阅读全文 作者:Vivid-victory
recommend-type

Python使用matplotlib绘制多个图形单独显示的方法示例

主要介绍了Python使用matplotlib绘制多个图形单独显示的方法,结合实例形式分析了matplotlib实现绘制多个图形单独显示的具体操作技巧与注意事项,代码备有较为详尽的注释便于理解,需要的朋友可以参考下
recommend-type

python pyecharts 实现一个文件绘制多张图

主要介绍了python pyecharts 实现一个文件绘制多张图,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

python射线法判断一个点在图形区域内外

主要为大家详细介绍了python射线法判断一个点在图形区域内外,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

Python实现保证只能运行一个脚本实例

主要介绍了Python实现保证只能运行一个脚本实例,本文直接给出实现代码,需要的朋友可以参考下
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

numpy数组索引与切片技巧

![numpy数组索引与切片技巧](https://img-blog.csdnimg.cn/f610d87ed50745d2b7052af887da2d0d.png) # 2.1 整数索引 整数索引是 NumPy 数组中索引元素的最简单方法。它允许您使用整数来访问数组中的特定元素或子数组。 ### 2.1.1 单个元素索引 单个元素索引使用一个整数来访问数组中的单个元素。语法为: ```python array[index] ``` 其中: * `array` 是要索引的 NumPy 数组。 * `index` 是要访问的元素的索引。 例如: ```python import
recommend-type

javaboolean类型怎么使用

Java中的boolean类型表示真或假,只有两个可能的值。在Java中,boolean类型的变量可以被初始化为false或true。可以使用以下语法来声明和初始化一个boolean类型的变量: ``` boolean myBoolean = true; ``` 在Java中,boolean类型的变量通常用于控制流程和条件测试,例如: ``` if (myBoolean) { // do something if myBoolean is true } else { // do something if myBoolean is false } ``` 除了if语句之外
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。