课程: 《数据可视化技术》
主题:太平洋汽车销售分析
2021年1月1日
前言
自从我学习数据分析以来,第一次在python上实战了数据分析。 一边做,一边看我平时做的笔记,看别人的博客,看老师的课的播放。 另外,还添加了很多我没有学到的新功能。 经过几天的努力,这次的课程设计取得了成功。 以下数据来自我爬取的《太平洋汽车》销售记录、评价、论坛。 学习编程真的是这样。 如果不进行实战操作,就不知道自己会面临什么问题,也无法提高自己的能力。 这是个好的开始。 另外,我期待着自己继续努力
目录
一.设计需求3
二.项目实现思路和流程3
一、设计方案3
2、项目流程图4
3、操作流程4
(1)创造爬行动物5
)2)创建要存储在数据库中的字段item 5
)3)创建蜘蛛文件5
(4)编写MySQL存储插件8
三.成果展示19
一、工序19
2、Mysql数据库20
3、条形图20
4、零散图21
五、雷达图22
6、漏斗图22
七、散布图23
8、词云图23
九、地图分布图24
10、闪烁模式24
十一、最后一页展示24
四.收获和心得26
第一章设计要求
1.1设计目的
在这次的路线设计中,我们收集了太平洋汽车2020年的汽车销售统计,分析了轿车和SUV这两种车的销售情况。 分析车主在选择购车时最重视车位配置。
1.2系统需求分析
该系统更直观地表达了太平洋汽车销售车辆的状况,用图表表达了销量、占有率、油耗和全国分布情况。 用柱状图、饼图、雷达图、散点图、地区分布图进行展示。
1.3系统功能分析
)1)登录销售记录,记录汽车销售情况。
)2)可视化分析各字段之间的关系。
)3)通过使用各种图形进行可视化分析,使数据简单易懂,一目了然。
1.4工具分析
)1) Pycharm使用scrapy框架取得数据。
)2)使用MYSQL数据库保存爬网数据。
)3)用pyechars用数据库的数据制作可视化图。
)用DW合并创建的网页。
第二章设计方案2.1总体设计方案
(1)首先通过网站(https://www.pcauto.com.cn/) )分析应该攀登的价值数据,确定应该攀登的数据。
)2)从mysql数据库中创建相关数据库,通过确定要攀登的数据并创建合适的字段和表,为下一次攀登大量数据并存储在mysql数据库中做准备。
)3)用scrapy建立具体的爬虫项目,对相应网站的数据进行爬网,将爬网后的数据保存到数据库中。
)4)在python的pyecharts库中对mysql数据库中的具体数据进行数据可视化操作,生成相应的条形图、饼图等多种可视化图形。
(5)用DW对生成的可视化图形进行整理和布置,建立向对应图形的超链接。
2.2数据库实现:
车型购买时间、地点、价格单位平均油耗单位行驶距离(公里)…优势外观、内饰空间配置、动力操纵油耗
3.1爬行动物的制作
3.1.1主爬虫程序spiders.py设计代码:
导入脚本
导入re
fromprjsinanewsspider.itemsimportprjsinanewsspideritem
classinanewsspiderspider (scrapy.spider ) :
name=' sinanewsspider ' allowed _ domains=[ ' www.pcauto.com ' ] #艺人信息start _ URLs=[ ' https://price.pcauto.com ] 28 ) : URL=(https://price.pcauto.com.cn/price/q-k75-n ) ) str(I ) ).html ) ## 打印(URL ) ) (打印) ) ) ) html ) 65 callback=self.get_url )指定的单页数据defget_URL(self, response(:print(1(response ) print )1) titles=response.XPath (/div ) @class='tit ' )/a/text )
print(title) print(titleurl) print("===============") yield scrapy.Request(url=('https://price.pcauto.com.cn')+titleurl,callback=self.parse_detail) #passdef parse_detail(self, response): item=PrjsinanewsspiderItem() print("开始获取内容.......") title=response.xpath("//div[@class='title']/h1/text()").get() item["chexing"]=title print("车型:",title) date=response.xpath("//div[@class='list']/ul/li[1]/a[2]/text()").get() date=re.sub("D", "", date) print("价格",date) item['jiage']=date content=response.xpath("//div[@class='strength']/div/div/p/text()").get() #content = re.sub("D", "", content) print(content) item['pingfen'] = content author=response.xpath("//div[@class='strength']/div[2]/div[1]/div/p/text()").get() item['pezhi'] = author #print(item) fenlei = response.xpath("//div[@class='strength']/div[2]/div[3]/div/p/text()").extract() item['pingjia'] = fenlei pin = response.xpath("//div[@class='strength']/div[2]/div[4]/div/p/text()").get() print(pin) item['youhao'] = pin pan = response.xpath("//div[@class='price']/ul/li/p/a/text()").get() print(pan) item['leixing'] = pan return item print("=====================================================")3.2 item设计:
chexing = scrapy.Field()
jiage = scrapy.Field()
pingfen =scrapy.Field()
pezhi = scrapy.Field()
pingjia= scrapy.Field()
youhao=scrapy.Field()
leixing=scrapy.Field()
3.3mysql数据库连接
self.connect = pymysql.connect(host=‘localhost’, user=‘root’, passwd=‘123456’,db=‘geshou’) # 后面三个依次是数据库连接名、数据库密码、数据库名称
4成果展示
4.3柱图
4.4.玫瑰图
4.5 雷达图
4.6漏斗图
4.7散点图
4.8词云图
4.9地图分布图
4.9 闪烁图
4.10 仪表图
在这里插入图片描述
4.11 DW综合界面
四,数据分析
在做出的可视化界面中,发现哈弗H6和日产轩逸占据榜首,切数据量比较大,而且车主评价较高。分析哈弗和轩逸的销售分析以后发现。轩逸以低油耗,故障率低,价格适中。广受大家的喜爱。且在全国各地分布比较广,尤其是沿海地区,占比非常高。并且一年中销量yjdnm集中在12月前后。可能大家都要买车回家过年。H6项对于轩逸来说,在西北地区的占比要高于轩逸,西北地区可能因为地域的限制。在总销售榜单中,日产销量占据第一位。国产位居后几位。希望国产越做越好。
五.收获及心得
通过这次课程设计,发现自己有很多的问题。在操作等方面不够细致,自己的实战检验还不足。在爬出过程中不够细致和耐心。导致出了好多错,自己的基础知识储备不足,在做项目时只能去慢慢去回顾以前的基础知识。在实战中慢慢积累经验,不断的充实自己。通过这次课程设计,我也更加直观的了解到,我们学习数据分析的意义与价值。通过分析大量的数据,把复杂,无序的数据做出图表,做出傻瓜界面。可以让数据的价值更容易体现出来。