码迷,mamicode.com
首页 > 其他好文 > 详细

数据可视化分析(柱状图、折线图、热力图)

时间:2019-12-08 17:13:20      阅读:985      评论:0      收藏:0      [点我收藏+]

标签:write   清除   enter   功能   close   baidu   处理   dict   排名   

一、项目简介

1.1    项目博客地址

https://rpc.cnblogs.com/metaweblog/yyh28

1.2    项目完成的功能与特色

分析文件‘集美大学各省录取分数.xlsx’,完成以下功能:
1)集美大学2015-2018年间不同省份在本一批的平均分数,柱状图展示排名前10的省份,
2)分析福建省这3年各批次成绩情况,使用折线图展示结果,并预测2019年录取成绩
3)分析其他省份数据。用热力图,地图方式绘制所有省份数据情况。

      1.3 项目采用的技术栈

              Numpy:矩阵计算与其它大多数框架的数据处理基础;

              Matplotlab:专业画图工具,话说这个单词还是真是在Matlab之间插入了plot这个词形成的;

              Pandas:提供类似于R语言的DataFrame操作,非常方便;

              百度地图API

              热力图

1.3    项目借鉴源代码的地址

https://www.jianshu.com/p/c18dedc38b7b

1.4    团队成员任务分配表

二、项目的需求分析

对文件数据进行提取、分析

三、项目功能架构图、主要功能流程图

 

四、系统模块说明

4.1 系统模块列表

柱状图、折线图、热力图

4.2 各模块详细描述(名称,功能,运行截图,关键源代码)

4.2.1柱状图:集美大学2015-2018年间不同省份在本一批的平均分数,展示排名前10的省份。

 技术图片

 

 

#绘图
plt.figure()
plt.bar(x=province_dict_keys,height=province_dict_values,alpha=0.8)
for x,y in enumerate(province_dict_values):
    plt.text(x, y, %s % y, ha=center, va=bottom)
#设置标题
plt.title("排名前10的省份")
# 为两条坐标轴设置名称
plt.xlabel("省份")
plt.ylabel("平均分")
#图片的显示及存储
log = datetime.datetime.now().strftime(%Y-%m-%d)
# plt.savefig(‘./logging/%s_all_a.jpg‘ % log)   #图片的存储
# plt.close()   #关闭matplotlib
4.2.2折线图:分析福建省这3年各批次成绩情况,使用折线图展示结果,并预测2019年录取成绩

技术图片

 

 技术图片

 

 

#折线图

plt.figure()

plt.plot(grade_year,grade,ro-, color=#4169E1, alpha=0.8, label=提前批航海类(理工))

plt.plot(grade_year,grade1,ro-, color=#FFFA12, alpha=0.8, label=师范类(面向全省)(理工))

plt.plot(grade_year,grade2,ro-, color=#78FF1D, alpha=0.8, label=师范类(面向厦门)(理工))

plt.plot(grade_year,grade3,ro-, color=#1CFFB7, alpha=0.8, label=农村专项计划(理工))

plt.plot(grade_year,grade4,ro-, color=#1BE9FF, alpha=0.8, label=本一批(理工))

plt.plot(grade_year,grade5,ro-, color=#1F98FF, alpha=0.8, label=本一批(面向厦门)(理工))

plt.plot(grade_year,grade6,ro-, color=#2237FF, alpha=0.8, label=闽台合作(理工))

plt.plot(grade_year,grade7,ro-, color=#BA6BFF, alpha=0.8, label=预科批(理工)) #在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度)

for y in [grade,grade1,grade2,grade3,grade4,grade5,grade6,grade7]:

    for x,yy in zip(grade_year,y):

        plt.text(x, yy+1,str(yy), ha=center, va=bottom, fontsize=7)

plt.xlabel("年份") #X轴标签

plt.ylabel("分数线") #Y轴标签

plt.title("福建省这3年理工各批次成绩情况") #标题

# plt.savefig(‘./logging/%s_all_b.jpg‘ % log)   #图片的存储

#显示图示

plt.legend()

plt.show()

 

4.2.3热力图:分析其他省份数据。有精力同学可以研究热力图,地图方式绘制所有省份数据情况。

技术图片

 

 

技术图片

 

 技术图片

 

 

gr=batch(本一批,理工)

gr=sorted(gr.items(),key=lambda x:x[1],reverse=True)

file = open(r../point.json,w) #建立json数据文件

point_pr(gr,file)

 

#获取经纬度

def getlnglat(address):

    url = http://api.map.baidu.com/geocoding/v3/

    output = json

    ak = 8atpMUyuexdbuYFU838ejPvSPnWYZoks

    add = quote(address) #由于本文城市变量为中文,为防止乱码,先用quote进行编码

    uri = url + ? + address= + add  + &output= + output + &ak= + ak

    req = urlopen(uri)

    res = req.read().decode() #将其他编码的字符串解码成unicode

    temp = json.loads(res) #对json数据进行解析

    return temp

 

def point_pr(gr,file):

#每个省份的经纬度

    print(gr)

    for line in gr:

        # line是个list,取得所有需要的值

        b = line[0] #将第一列city读取出来并清除不需要字符

        if b == 西藏 or b == ‘‘:

            continue

        c= line[1]#将第二列price读取出来并清除不需要字符

        lng = getlnglat(b)[result][location][lng] #采用构造的函数来获取经度

        lat = getlnglat(b)[result][location][lat] #获取纬度

        str_temp = {"lat": + str(lat) + ,"lng": + str(lng) + ,"count": + str(c) +},

        # print(str_temp) #也可以通过打印出来,把数据copy到百度热力地图api的相应位置上

        file.write(str_temp) #写入文档

    file.close()

五、项目总结

      5.1 特点

              对集美大学近几年的录取分数进行分析,并生成图表

      5.2 不足之处

              整体不够美观

码云地址:https://gitee.com/leaf28/university.git

数据可视化分析(柱状图、折线图、热力图)

标签:write   清除   enter   功能   close   baidu   处理   dict   排名   

原文地址:https://www.cnblogs.com/yyh28/p/12006076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!