pyecharts地理位置可视化

明确目标:利用pandas对数据进行查询操作,并利用pyecharts对地理位置可视化,有些地理位置在地理库中不存在,如雄安新区等,需要我们添加地理位置。

pyecharts中文文档

我们仍然使用招聘数据:数据地址

import pandas as pd
import numpy as np

data = pd.read_excel('数据挖掘.xlsx',header = None)
df = pd.DataFrame(data)
df.index = df.index.set_names(['key'])
df.columns = ['website','position','company','location','low','high','type','education','experience']
df.head()

 输出结果:

  website position company location low high type education experience
key                  
0 https://jobs.51job.com/hangzhou-bjq/112861375.... 商品主管/经理 浙江迪欧达实业有限公司 杭州 7.0 10.0 民营公司 大专 3-4年经验
1 https://jobs.51job.com/wuhan/95235653.html?s=0... 数据挖掘工程师 环球名车汽车服务湖北股份有限公司 武汉 4.0 8.0 民营公司 大专 1年经验
2 https://jobs.51job.com/changsha-yhq/115208833.... 大数据挖掘治理工程师 湖南云解析科技有限公司 长沙 8.0 15.0 民营公司 无学历要求 无工作经验
3 https://jobs.51job.com/guangzhou-thq/115208435... 数据挖掘工程师 网易集团 广州 12.0 25.0 上市公司 本科 2年经验
4 https://jobs.51job.com/sanmenxia/115240348.htm... 数据挖掘工程师 河南中消物联科技有限公司 三门峡 8.0 15.0 民营公司 本科 无工作经验

 我们对location进行计数不同,即统计数据挖掘类职位在各个城市的分布数量。

#按照location计数不同
ct = df.groupby('location').count()
for index, row in ct.iterrows():
    dic = (index,row['website'])
    print(dic,",",end='')

输出结果如下:

('三门峡', 4) ,('上海', 473) ,('东莞', 17) ,('中山', 6) ,('临沂', 1) ,('义乌', 1) ,('乐山', 1) ,('云南省', 1) ,('佛山', 25) ,('兰州', 2) ,('内江', 1) ,('北京', 158) ,('南京', 98) ,('南宁', 4) ,('南昌', 8) ,('厦门', 23) ,('合肥', 44) ,('唐山', 3) ,('商丘', 1) ,('嘉兴', 8) ,('四川省', 1) ,('大连', 7) ,('天津', 5) ,('太原', 1) ,('孝感', 1) ,('宁波', 20) ,('宜昌', 1) ,('常州', 15) ,('常德', 1) ,('广东省', 1) ,('广州', 344) ,('徐州', 5) ,('德州', 1) ,('惠州', 5) ,('成都', 83) ,('扬州', 2) ,('新乡', 1) ,('无锡', 13) ,('昆山', 6) ,('昆明', 16) ,('普洱', 1) ,('杭州', 152) ,('梅州', 1) ,('武汉', 104) ,('汕头', 4) ,('汕尾', 1) ,('江门', 2) ,('沈阳', 21) ,('泉州', 3) ,('洛阳', 3) ,('济南', 14) ,('海口', 6) ,('淄博', 1) ,('深圳', 288) ,('温州', 3) ,('湖州', 3) ,('湘潭', 1) ,('烟台', 4) ,('珠海', 17) ,('盐城', 1) ,('石家庄', 3) ,('福州', 25) ,('绍兴', 2) ,('肇庆', 1) ,('苏州', 55) ,('荆州', 1) ,('荆门', 1) ,('西安', 41) ,('许昌', 2) ,('贵阳', 9) ,('连云港', 1) ,('遂宁', 1) ,('郑州', 18) ,('重庆', 33) ,('金华', 2) ,('镇江', 2) ,('长春', 6) ,('长沙', 44) ,('雄安新区', 2) ,('青岛', 18) ,('韶关', 1) ,('马鞍山', 1) 

复制输出结果到data,并添加地理库中不存在的地点的经纬度json文件,最后进行可视化

from pyecharts import Geo


data = [('三门峡', 4) ,('上海', 473) ,('东莞', 17) ,('中山', 6) ,('临沂', 1) ,('义乌', 1) ,('乐山', 1) ,
        ('云南', 1) ,('佛山', 25) ,('兰州', 2) ,('内江', 1) ,('北京', 158) ,('南京', 98) ,('南宁', 4) ,
        ('南昌', 8) ,('厦门', 23) ,('合肥', 44) ,('唐山', 3) ,('商丘', 1) ,('嘉兴', 8) ,('四川', 1) ,
        ('大连', 7) ,('天津', 5) ,('太原', 1) ,('孝感', 1) ,('宁波', 20) ,('宜昌', 1) ,('常州', 15) ,
        ('常德', 1) ,('广东', 1) ,('广州', 344) ,('徐州', 5) ,('德州', 1) ,('惠州', 5) ,('成都', 83) ,
        ('扬州', 2) ,('新乡', 1) ,('无锡', 13) ,('昆山', 6) ,('昆明', 16) ,('普洱', 1) ,('杭州', 152) ,
        ('梅州', 1) ,('武汉', 104) ,('汕头', 4) ,('汕尾', 1) ,('江门', 2) ,('沈阳', 21) ,('泉州', 3) ,
        ('洛阳', 3) ,('济南', 14) ,('海口', 6) ,('淄博', 1) ,('深圳', 288) ,('温州', 3) ,('湖州', 3) ,
        ('湘潭', 1) ,('烟台', 4) ,('珠海', 17) ,('盐城', 1) ,('石家庄', 3) ,('福州', 25) ,('绍兴', 2) ,
        ('肇庆', 1) ,('苏州', 55) ,('荆州', 1) ,('荆门', 1) ,('西安', 41) ,('许昌', 2) ,('贵阳', 9) ,
        ('连云港', 1) ,('遂宁', 1) ,('郑州', 18) ,('重庆', 33) ,('金华', 2) ,
        ('镇江', 2) ,('长春', 6) ,('长沙', 44) ,('雄安新区', 2) ,('青岛', 18) ,('韶关', 1) ,('马鞍山', 1)]

geo = Geo("数据挖掘岗位数量", title_color="#fff", title_pos="center",
        width=1000, height=800, background_color='#404a59')

#添加新位置的文件文件书写格式如下
# {
    #"普洱":[101,22.79],
    #"雄安新区":[116.117106,39.164298]
    # }

geo.add_coordinate_json('newplace.json')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0,100],
        visual_text_color="#fff", symbol_size=20, is_visualmap=True)
geo.show_config()
geo.render()

可视化结果如下:

pyecharts地理位置可视化_第1张图片

 

 

你可能感兴趣的:(可视化)