说实话,这一期起的有点标题党了。


用到的Python知识并不多,只是利用Python对数据进行规整。


最多的应该是用大佬造的轮子,基于D3.js的数据可视化项目。


附上大佬的GitHub地址,有兴趣的小伙伴可以自行去围观。


https://github.com/Jannchie/Historical-ranking-data-visualization-based-on-d3.js


最后我利用大佬造的轮子,成功实现了25年间各省市GDP数据的可视化。



于是乎,你不就对各省市的GDP了解的一清二楚。


数据来源来自国家统计局。


附上相关链接,其实里面还有好多其他的数据,非常适合拿去练手。


http://data.stats.gov.cn/easyquery.htm?cn=E0103


本次的GDP数据如下,为各地区生产总值。


时间是1993年-2017年,共25年。



网站提供CSV文件下载,但是还是需要规整一下数据。


因为大佬造的轮子对数据有要求。


同时还需要注意一下编码问题,这里的CSV文件需要用gbk编码。


下面是从统计局下载下来的CSV数据。



我偷了个懒,直接就先在表格里删除了前三行,如下。


接下来便是用Python对数据进行规整,代码如下。


import pandas as pd

# 读取数据
df = pd.read_csv('gdp.csv', encoding='utf-8')
(names, values, dates) = ([], [], [])
# 记得去除地区这个列名,遍历年份
for i in df.columns[1:]:
    for j, k in zip(df[i], df['地区']):
        # 输出地区、GDP值、年份数据
        print(k, j, i)
        names.append(k)
        values.append(int(j))
        dates.append(int(i.replace('年''')))
# 生成DateFrame格式的数据
data = {
    'name': names,
    'type''',
    'value': values,
    'date': dates
}
# 将数据转存为新的CSV文件
frame = pd.DataFrame(data)
# 设置编码格式,避免乱码
frame.to_csv('gdp_last.csv', encoding='utf_8_sig')


获取的CSV数据如下。



和大佬造的轮子所需数据格式是一样的,这里我不设置类型。


接下来就是克隆大佬的项目代码到你的计算机里。


这里以前我只是上传代码,没有去下载项目代码,所以不是很清楚怎么下载下来。


经过这次算是学会了。


首先安装一下GitHub Desktop,然后用你的GitHub账号登陆它。


配置一下你的用户名及绑定邮箱,便能克隆其他人的项目到你的本地。


然后打开src目录下的bargraph.html,浏览器就会打开一个网页。


在网页里点击选择文件,把文件上传上去就成功了。


网页上就会有动态视频出现,如下。


https://v.qq.com/x/page/e0821kbqkx8.html


是不是发现很有意思,哈哈。


这里我根据自己个人需要,对大佬的轮子进行了修改。


修改的地方是在src目录下的config.js文件里。


主要是一些小细节的修改,比如最多显示的条目数,标题,以及条目的颜色。


修改的文件及我的CSV文件都已经上传到GitHub上头了。


有兴趣的小伙伴可以自行去围观,通过阅读原文即可直接到我的GitHub。


千山万水总是情,点个「好看」行不行。





···  END  ···



©著作权归作者所有:来自51CTO博客作者mb5fe18ec4a4df8的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python数据科学:相关分析
  2. Python数据可视化:豆瓣电影TOP250
  3. Python数据可视化:浅谈数据分析岗
  4. 11种数据分析方法,别再说你不会了
  5. ThingJS官方示例(十一):基于数据矢量及贴图url开发OD线
  6. 使用内存NewSQL数据平台来处理实时数据流的三个好处
  7. 用Python实现手机抓包,获取当当图书差评数据!
  8. Python数据可视化:Python大佬有哪些?
  9. Python数据可视化:2018年北上广深空气质量分析

随机推荐

  1. 本地方法中printf如何传给java--java系统
  2. Maven:主线程中的NoClassDefFoundError
  3. spring boot返回date类型
  4. 跨站脚本专题(XSS)
  5. JavaScript三种弹出框(alert,confirm和prom
  6. 是否有缩放因子方法用于Android的多分辨
  7. 黑马程序员 Java中根据YYYY-MM-DD格式的
  8. 用java画跳棋棋盘
  9. 【Effective Java】条30:使用枚举代替int
  10. java中excel导出包括合并单元格和单元格