python数据爬取和分析以及可视化的具体案例,python数据分析入门从数据获取到可视化
Python ——爬虫可视化数据分析数据库(简介)
Python ——爬虫可视化数据分析数据库(爬虫)
Python ——爬虫可视化数据分析数据库(可视化章节)
Python ——爬虫可视化数据分析数据库(数据库)
首先,我们需要获取所有被抓取歌曲的歌词,并将其合成为字符串。
然后提取汉字,再合成字符串。
Text=re。findall ([\ u4e00-\ u9fa5]),lyric,re。s) #提取中文文本后=“”。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=word cloud(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=双线性)# PLT . axis( off )# PLT . show()Word _ cloud . to _ file(self . keyword Word cloud . png )OS . startfile(self . keyword Word cloud . png )Word参数中的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 . RC params[ font . sans-serif ]=[ sim hei ]#解决中文乱码问题plt.axes(aspect=1) #设置图形为圆形PLT.pie (x=贡献标签=name,explode=explode,autopct=%3.1f %% ,shadow=True,labeldistance=1.2,startangle=0,Pctdistance=0.8)plt.title(比例是歌手的名字),explode是上面提到的亮点,这三个列表中的值是一一对应的。 autopct是设置比例值的显示方式,3.1f是一个浮点数,宽度为3位(大于3位则按原样输出),精度为1。
也可以选择直接展示,或者保存在本地再打开。
3.歌曲流行度柱状图。之前我们通过爬虫获取了top500歌曲的信息(如下)。现在我们希望分析歌曲的流行度,生成条形图。
效果图如下:
本来想生成歌手拥有的流行歌曲数量的柱状图,但是抓取流行歌曲的网站中的那些流行歌曲没有对应的歌手,需要自己去其他网站获取每首歌曲对应的歌手。这样做太麻烦了,有兴趣的朋友可以自己体会一下。
首先,我们需要得到每个热度区间的歌曲数量。
下面的数据列表是X元组范围对应的歌曲数量。
我们可以通过每次遍历歌曲的热度列表及其数据列表中对应的热度1,得到每个热度范围内的歌曲数量。
X=(0-10 , 10-20 , 20-30 , 30-40 , 40-50 , 50 )数据=[0,0,0,0,0,0,0]下一步是创建直方图。首先,解决中国人的困惑。
PLT . RC params[ font . sans-serif ]=[ sim hei ]PLT . RC params[ 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()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。