美文网首页大数据 爬虫Python AI SqlPython小哥哥
Python数据可视化分析!这才是真正的数据分析!

Python数据可视化分析!这才是真正的数据分析!

作者: 14e61d025165 | 来源:发表于2019-04-24 15:32 被阅读1次

    大数据时代已经到来,网络的兴起产生了大量数据,而且数据的增长量超乎想象,面对如此大量的数据,我们难免会感到厌烦,例如下图展示了近期“上证指数”的交易数据:

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120946 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    可以添加QQ群1004391443,有飞机大战、颜值打分器、打砖块小游戏、红包提醒神器、小姐姐表白神器等具体的实训项目,有清晰源码,有相应的文件

    数据来源:网易财经:http://quotes.money.163.com/trade/lsjysj_zhishu_000001.html

    我们虽然可以看懂这样的图,但是很难发现其中的规律。数据可视化就是帮助用户探索和理解数据的工具,它可以用一幅图“告诉”用户一个深层次的故事,将强大又复杂的数据和文字通过图形化的方式清晰、有效的传达给用户正确有用的信息内容。

    Python在数据的采集、分析和可视化方面拥有巨大的优势,利用Python进行数据可视化分析是一个不错的选择。

    2019年中国各城市房价分析(house price)

    数据采集

    http://www.creprice.cn/rank/ajaxRankIndex.html?prostr=eyJkaSI6ImFsbCIsInBpIjoiIiwicHQiOjExLCJ0eSI6InNhbGUiLCJ1biI6ImNpdHkiLCJpbiI6IlByaWNlIiwibW4iOiIyMDE5LTAzIiwiY2kiOiIiLCJiYTEiOiIiLCJiYTIiOiIiLCJiciI6IiIsImJjIjoiIiwiYnkxIjoiIiwiYnkyIjoiIiwibnAxIjoiIiwibnAyIjoiIiwicHIxIjoiIiwicHIyIjoiIn0&ifmore=0

    通过此网站可以获取中国2019年3月300多个城市的房价数据。为了把城市名与位置关联起来,可以利用Python的geopy包获取城市的经纬度。

    得到各个城市的房价和位置以后,把所有数据存储到了MySQL数据库中。

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120949 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    数据清洗

    少部分城市经纬度对应的地点不在中国境内,这可能是因为外国有同名的城市。用百度地图的API,可以判断经纬度对应的地点是否在中国,删除错误的数据。

    数据展现

    利用folium库,绘制热力图:

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120953 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    得出结论

    中国房价较高的地区,主要集中在中部、东部、南部,房价较高的省和直辖市有:北京、天津、陕西、河南、四川、湖北、湖南、江苏、上海、浙江、广东、海南等。

    2015-2018年武汉气温分析(air temperature)

    数据采集

    http://www.tianqihoubao.com/lishi/wuhan/month/201801.html

    这个网页包含了2018年1月武汉天气的数据如果将url中的201801改为其他值,就可以得到其他年月的武汉天气数据。

    用这种思路,顺利采集了2015年-2018年武汉每一天的气温数据。

    数据存储

    把采集到的数据存储为一个CSV文件,CSV文件中,所有的值是以逗号分隔开的。

    数据清洗

    网站本身的错误,导致2018年1月1日的数据出现了两次,我们删除掉了这条重复的数据。

    数据展现

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120958 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    得出结论

    武汉每年夏天的最高气温在38度左右,冬天的最低气温在-5度左右。

    武汉三四月份的天气虽然变化无常,但每年的情况都是相似的。

    2016年江汉大学学生体测数据分析(sports test)

    数据采集

    2017年奖学金评选时,我们得到了全校体测数据,存储方式是Excel表格。

    数据清洗

    Excel本身就是一个很好的数据分析工具。

    在表格中,有少量11、12级学生的数据,这些数据量很少,没有分析价值,所以我们删除了这些数据。

    还有些错误数据影响分析的正确性,例如有些学生没有参加体测,有些学生成绩旁边标注了舞弊,我们删除了这些数据。

    我们利用Excel的求商函数,根据学号计算出了学生的年级。

    由于姓名、学号、班级是涉及学生隐私的敏感数据,这些数据对于数据分析本身也没有什么意义,所以我们删除了这些字段。

    数据展现

    各年级男女比例:

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120962 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    学生身高体重分布:

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120964 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    各年级学生身高:

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120967 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    各年级学生体重:

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120969 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    学生体测分数:

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120973 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    得出结论

    由以上这些图我们可以轻易看出,江汉大学各年级女生都比男生多,单女比例在45:55左右;全校男生平均身高大约为174cm,体重大约为67kg,全校女生平均身高大约162.5cm,体重大约为54kg;各年级学生身高几乎没有区别,所以男生不必对大学期间长高抱有希望。从大一到大四,男生体重有较小的上涨趋势,女生体重有较小的下降趋势。

    从大一到大四,不论是男生还是女生,体测成绩都在下降,但这不一定说明学生体质下降,因为大三大四的打分标准比大一大二严格,而且大四的学生可能不注重体测,没有发挥真实水平。

    上证指数收盘价分析(stockclosing price)

    数据采集

    http://quotes.money.163.com/trade/lsjysj_zhishu_000001.html

    网易财经直接提供了数据的下载,我们直接在这个网站下载了1990年12月19日到2019年4月22日“上证指数”的交易数据,数据格式是CSV。

    数据清洗

    得到的数据很规范,所以可以跳过数据清洗这一步。

    数据展现

    使用Python的pygal库,我们将每日收盘价可视化为一个svg文件(可伸缩矢量图形),这种文件需要用浏览器打开,支持与鼠标的交互。

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1556091120975 ql-align-center" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; text-align: left; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>

    得出结论

    中国的股价,在2008年和2015年,有两次较大幅度的下跌,2018年也是不太景气的一年,但2019年到目前为止股价上涨很快。

    股市虽然常常波动,但长期看来,股价一直是有上涨趋势的。

    相关文章

      网友评论

        本文标题:Python数据可视化分析!这才是真正的数据分析!

        本文链接:https://www.haomeiwen.com/subject/szuggqtx.html