分享

python炫酷技能

 AnonymousV脸 2019-01-03

好久不见啊,斑点鱼之前出去旅行了一周,拉下了好多事情,之前跟大家说过的要将不同方式的热图可视化都给大家串一遍,现在来喽~~

今天呢就先和大家说说,怎么用python进行地图热图的绘制哈~

光是python,(这边不说matplot)斑点鱼知道的就有两种绘制地图的方法,一个是bokeh(交互式很棒!),另一个是pyecharts(交互式更棒!!!)。之前用Bokeh就已经觉得自己溜溜的,用了pyecharts更是感觉自己可以去做前端了!(哈哈哈哈,仰天长啸,说个笑话)其实就和echarts差不多(echarts如果大家有兴趣,我也可以讲解一下哈~),但对于只熟悉python不想用其他更多的软件的宝宝们来说,真的是个大福音啊!

bokeh(制作空间散点图)

首先,安装一下:pip install bokeh

其次,导入模块:

# 导入notebook绘图模块

# 导入图表绘制、图标展示模块

# 导入ColumnDataSource模块

from bokeh.plotting import figure,show,output_file

from bokeh.models import ColumnDataSource

from bokeh.models import HoverTool

from bokeh.layouts import gridplot

output_file('line2.html')

准备数据字段:

经度、纬度、值(颜色深浅的重要依据)

绘图过程code:

from bokeh.models import HoverTool

# 添加size字段

data_final['size'] = data_final['final_score'] * 25

data_final['color'] = 'blue'

data_final['color'].iloc[:10] = 'red'

# 创建ColumnDataSource数据

source = ColumnDataSource(data_final)

# 设置标签显示内容

hover = HoverTool(tooltips=[('经度', '@lng'),

('纬度', '@lat'),

('最终得分', '@final_score'), ])

# 构建绘图空间

p = figure(plot_width=900, plot_height=900,title='实体快餐店选址最终得分' ,

tools=[hover,'box_select,reset,wheel_zoom,pan,crosshair'])

#散点图绘制(散点为方块)

p.square(x = 'lng',y = 'lat',source = source,

line_color = 'black',fill_alpha = 0.5,

size = 'size',color = 'color')

#中间想要突出的两条红色长方形设置

bg=BoxAnnotation(top=31.32,bottom=31.2,fill_alpha=0.1, fill_color='red')

p.add_layout(bg)

bg2=BoxAnnotation(left=121.4,right=121.52,fill_alpha=0.1, fill_color='red')

p.add_layout(bg2)

show(p)

最终结果展示:

2.pyecharts

首先安装一下:pip install pyecharts

再导入一下模块

from pyecharts import Geo

from pyecharts import Map

上海行政地图热图

value = [x for x in list(c_num['num_cnt'])]

attr = list(c_num['district'])

(具体数据格式举例:

value = [20, 190, 253, 77, 65]

attr = ['浦东新区', '金山区', '宝山区', '静安区', '普陀区']

map = Map('上海', width=2000,height=1000)

map.add('', attr, value, maptype='上海', visual_range=[0, 500],

is_visualmap=True,visual_text_color='#000',is_label_show=True)

map.render('上海.html')

map

结果展示:

全国省市地图热图

数据:

province value0 山东省 5361 广东省 2272 江苏省 2143 内蒙古自治区 1984 四川省 1935 浙江省 1926 辽宁省 1877 云南省 1758 上海市 1559 河北省 15310 贵州省 116... ....

chart = Geo('你的标题', '副标题', title_pos='center', width=1500, height=800, title_color='#fff',background_color='#404a59')

#数据输入

value = list(data['value'])

attr = list(data['province'])

#绘制地图

chart.add('',attr,value,visual_range=[0,200],visual_text_color='#fff', is_legend_show=True,

symbol_size=15,is_visualmap=True,tooltip_formatter='',type='heatmap', is_random=True,effect_scale=5,is_roam=False,label_emphasis_textsize=15,、label_emphasis_pos='right')

chart.render('全国省市地图.html')

结果展示:

还有世界地图

和上面code一致

value = [95.1, 23.2, 43.3, 66.4, 88.5, 0.1]

attr = ['China', 'Canada', 'Brazil', 'Russia',

'United States', 'Unknown Country']

chart = Map('世界地图 - 带标记点')

chart.add('', attr, value, maptype='world', is_visualmap=True,visual_text_color='#000')

chart.render('世界地图.html')

pyecharts其实还可以做出超多图表形式,在此斑点鱼就不一一列举了。

再给喜欢斑点鱼的朋友透露一个pyecharts必杀技,大绝招!那就是直接导入PPT作动态效果!,真真真是太酷炫了,话不多说,上图——————

如果大家看到了想学习一下,可以给斑点鱼点个赞哦~要求不高,满十个就好,当然赞赏是更棒啦!!看到大家的热情下一篇斑点鱼就详细来介绍一下,如何在PPT中展示pyecharts制作的酷炫的图表哦~~

一起学习的小伙伴如果有什么想法或者意见,欢迎沟通~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多