Python大作业——爬虫+可视化+数据分析+数据库(数据分析篇)。

一、生成歌词词云

首先我们需要先获取所有爬取到的歌曲的歌词,将他们合成字符串

随后提取其中的中文,再合成字符串

text = re.findall('[\u4e00-\u9fa5]+', lyric, re.S)  # 提取中文
text = " ".join(text)

之后使用jieba进行分词,并将其中分出来的长度大于等于2的词保存

word = jieba.cut(text, cut_all=True)  # 分词
new_word = []
for i in word:
    if len(i) >= 2:
        new_word.append(i)  # 只添加长度大于2的词
final_text = " ".join(new_word)

接下来为生成的词云选择一张好看的图片,就可以开始生成了!

在这里插入图片描述

mask = np.array(Image.open("2.jpg"))
word_cloud = WordCloud(background_color="white", width=800, height=600, max_words=100, max_font_size=80, contour_width=1, contour_color='lightblue', font_path="C:/Windows/Fonts/simfang.ttf", mask=mask).generate(final_text)
# plt.imshow(word_cloud, interpolation="bilinear")
# plt.axis("off")
# plt.show()
word_cloud.to_file(self.keyword+'词云.png')
os.startfile(self.keyword+'词云.png')

WordCloud参数中的contour_width=1, contour_color='lightblue’分别为背景图片轮廓线条的粗细和颜色,如果没有设置则不会出现轮廓,font_path是用来指定字体的

生成后可以通过show展示也可以通过保存到本地并打开,最终结果如下

在这里插入图片描述

二、热门歌手歌曲量饼图

在这里插入图片描述

 首先是获得热门歌手列表以及热门歌手歌曲量

随后用每个歌手歌曲数量除以所有这十个歌手的总歌曲数量,得到每个歌手歌曲量的占比

接下来可以选择设置哪一块突出显示,如图中周杰伦部分突出显示

如下只需要将突出部分的值设置大即可

explode = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0]

接下来就可以生成饼图了

plt.figure(figsize=(6, 9))  # 设置图形大小宽高
plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码问题
plt.axes(aspect=1)  # 设置图形是圆的
plt.pie(x=proportion, labels=name, explode=explode, autopct='%3.1f %%',
shadow=True, labeldistance=1.2, startangle=0, pctdistance=0.8)
plt.title("热门歌手歌曲量占比")
# plt.show()
plt.savefig("热门歌手歌曲量占比饼图.jpg")
os.startfile("热门歌手歌曲量占比饼图.jpg")

其中x是歌曲量占比的列表,labels是对应的标签(在此图中则为歌手的姓名),explode就是上文提到的突出显示,这三个列表中的各个值是一一对应的,autopct是设置占比数值的显示方式,3.1f则表示占宽为3位(如果大于会原样输出),精度为1的浮点数

同样可以选择直接show展示,或者保存到本地再打开

三、歌曲热度占比条形图

在之前我们通过爬虫获取了top500的歌曲的信息(如下),现在我们希望对歌曲的热度进行分析,生成柱状图

在这里插入图片描述

 效果图如下:

在这里插入图片描述

 本来是想生成歌手拥有热门歌曲数量的柱形图的,但是那个爬取热门歌曲的网站中那些热门歌曲没有对应的歌手,还需要自己再去其他网站获得每首歌曲对应的歌手,太麻烦了就没这么做了,有兴趣的小伙伴可以自己实现一下

首先我们要获得每个热度范围的歌曲数量

下面的data列表就是对应x元组范围的歌曲数量

我们只要通过遍历歌曲热度列表,每次都在其data列表对应热度+1,最终即可得到每个热度范围的歌曲数量

x = ('0-10', '10-20', '20-30', '30-40', '40-50', '>50')
data = [0, 0, 0, 0, 0, 0]

接下来就是创建柱状图,首先解决中文乱码问题

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

随后即可通过plt.bar创建,其中第一个参数为横坐标数据,第二个参数为纵坐标数据,第三个参数为为柱状图填充颜色,第四个参数为透明度

title,xlabel,ylabel显然就是该柱状图的标题,横坐标和纵坐标的名称

plt.bar(x, data, color='steelblue', alpha=0.8)
plt.title("pop500歌曲热度")
plt.xlabel("歌曲热度范围")
plt.ylabel("歌曲数量")
plt.show()

文章知识点与官方知识档案匹配,可进一步学习相关知识

Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据分析与可作业是一个重要的课程项目,它涵盖了Python数据分析和可的各个方面。学生需要使用Python编程语言来获取、清洗、分析和可数据,并使用统计学和机器学习技术来提取数据的洞察和建立预测模型。 在大作业中,学生将根据自己的兴趣选择一个数据集,并研究这个数据集。他们需要运用Python和其它数据科学工具来实现以下功能: 1.数据获取和存储:使用Python编写代码,从互联网上获取指定数据集,例如Kaggle。然后将数据集存储到本地计算机中进行分析。 2.数据清洗:学生需要识别和纠正数据集中的错误和缺失数据。清洗数据的过程中,学生还需要进行重复数据的识别和去除。 3.数据分析:输入数据集包含各种变量,学生需要使用python统计和机器学习的算法对整个数据集进行分析。在分析过程中,学生需要根据数据集中的具体情况,选择适合的算法来拟合数据。 4.数据可:学生需将数据集的结果可,以支持观察者对分析结果的理解。这些可可以是交互式的报表、图表或热图等。 最后,学生需要准备一个报告汇总项目的进展,这个报告应该包括项目目标,数据集选取和获取,数据预处理,数据分析和可结果,以及对整个分析作出的结论和建议。 总的来说,Python数据分析与可作业对于学生进一步掌握数据科学技术和数据分析的流程十分必要,它可以对数据分析的能力和Python编程技巧相当程度的挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值