当前位置:首页 > 图片 > 时尚娱乐 > 正文
文章正文

python 画动态图 使用Python绘制点击图、热图

图片 > 时尚娱乐 > :python 画动态图 使用Python绘制点击图、热图是由美文导刊网(www.eorder.net.cn)为您精心收集,如果觉得好,请把这篇文章复制到您的博客或告诉您的朋友,以下是python 画动态图 使用Python绘制点击图、热图的正文:

使用Python绘制点击图、热图

pyHeatMap是一个使用Python生成热图的库,基本代码是我一年多之前写的,最近把它从项目中抠出来做成一个独立的库并开源。(https://github.com/oldj/pyheatmap)

可以直接下载源码安装最新的版本,也可以通过pip或easy_install安装稳定的发布版:36大数据(http://www.36dsj.com/)

pyHeatMap依赖于PIL库,使用之前需要先确保你的环境中已经安装了PIL。使用方法很简单,比如:

输入的数据为形如 [[123, 234], [429, 82], [220, 535], …] 这样的列表或元组,可以把它理解为一组平面坐标。

目前这个库可以生成两种图片:点击图、热图。36大数据(http://www.36dsj.com/)

点击图效果如下:36大数据(http://www.36dsj.com/)

热图效果如下:

绘制图片时,还可以指定一个底图,这个底图可以是任意图像,也可以是另一个点击图。比如:

生成的图片形如:36大数据(http://www.36dsj.com/)

End.

转载请注明来自36大数据(36dsj.com):36大数据» 使用Python绘制点击图、热图返回搜狐,查看更多

手把手|如何用Python绘制JS地图?

关于转载授授权

大数据文摘作品,欢迎个人转发朋友圈,自媒体、媒体、机构转载务必申请授权,后台留言“机构名称+文章标题+转载”,申请过授权的不必再次申请,只要按约定转载即可,但文末需放置大数据文摘二维码。

编译:佘彦遥程序注释:席雄芬校对:丁雪

原文链接:https://github.com/python-visualization/folium/blob/master/README.rst

Folium是建立在Python生态系统的数据整理(Datawrangling)能力和Leaflet.js库的映射能力之上的开源库。用Python处理数据,然后用Folium将它在Leaflet地图上进行可视化。

概念

Folium能够将通过Python处理后的数据轻松地在交互式的Leaflet地图上进行可视化展示。它不单单可以在地图上展示数据的分布图,还可以使用Vincent/Vega在地图上加以标记。

这个开源库中有许多来自OpenStreetMap、MapQuest Open、MapQuestOpen Aerial、MapboxStamen的内建地图元件,而且支持使用MapboxCloudmadeAPI密钥来定制个性化的地图元件。Folium支持GeoJSONTopoJSON两种文件格式的叠加,也可以将数据连接到这两种文件格式的叠加层,最后可使用color-brewer配色方案创建分布图。

安装

安装folium

开始创建地图

创建底图,传入起始坐标到Folium地图中:

importfolium

map_osm= folium.Map(location=[45.5236, -122.6750]) #输入坐标

map_osm.create_map(path="osm.html")(python 画动态图)

Folium默认使用OpenStreetMap元件,但是Stamen Terrain, Stamen Toner, Mapbox Bright MapboxControl空间元件是内置的:

#输入位置,tiles,缩放比例

stamen =folium.Map(location=[45.5236, -122.6750], tiles="Stamen Toner",zoom_start=13)

stamen.create_map(path="stamen_toner.html")#保存图片

Folium也支持Cloudmade Mapbox的个性化定制地图元件,只需简单地传入API_key

custom =folium.Map(location=[45.5236, -122.6750], tiles="Mapbox",

API_key="wrobstory.map-12345678")

最后,Folium支持传入任何与Leaflet.js兼容的个性化地图元件:

tileset= r""

map =folium.Map(location=[45.372, -121.6972], zoom_start=12,

tiles=tileset, attr="My DataAttribution")

地图标记

Folium支持多种标记类型的绘制,下面从一个简单的Leaflet类型的位置标记弹出文本开始:

map_1 =folium.Map(location=[45.372, -121.6972], zoom_start=12,

tiles="Stamen Terrain")

map_1.simple_marker([45.3288,-121.6625], popup="Mt. Hood Meadows")#文字标记

map_1.simple_marker([45.3311,-121.7113], popup="Timberline Lodge")

map_1.create_map(path="mthood.html")

Folium支持多种颜色和标记图标类型:

map_1 =folium.Map(location=[45.372, -121.6972], zoom_start=12,tiles="Stamen Terrain")

map_1.simple_marker([45.3288,-121.6625], popup="Mt. Hood Meadows",marker_icon="cloud") #标记图标类型为云

map_1.simple_marker([45.3311,-121.7113], popup="Timberline Lodge",marker_color="green") #标记颜色为绿色

map_1.simple_marker([45.3300,-121.6823], popup="Some OtherLocation",marker_color="red",marker_icon="info-sign")

#标记颜色为红色,标记图标为“info-sign”)

map_1.create_map(path="iconTest.html")

Folium也支持使用个性化的尺寸和颜色进行圆形标记:

map_2 =folium.Map(location=[45.5236, -122.6750], tiles="Stamen Toner",

zoom_start=13)

map_2.simple_marker(location=[45.5244,-122.6699], popup="The Waterfront")

简单树叶类型标记

map_2.circle_marker(location=[45.5215,-122.6261], radius=500,

popup="Laurelhurst Park",line_color="#3186cc",

fill_color="#3186cc")#圆形标记

map_2.create_map(path="portland.html")

Folium有一个简便的功能可以使经/纬度悬浮于地图上:

map_3 =folium.Map(location=[46.1991, -122.1889], tiles="Stamen Terrain",zoom_start=13)

map_3.lat_lng_popover()

map_3.create_map(path="sthelens.html")

Click-for-marker功能允许标记动态放置:

map_4 =folium.Map(location=[46.8527, -121.7649], tiles="Stamen Terrain",zoom_start=13)

map_4.simple_marker(location=[46.8354,-121.7325], popup="Camp Muir")

map_4.click_for_marker(popup="Waypoint")

map_4.create_map(path="mtrainier.html")

Folium也支持来自Leaflet-DVFPolygon(多边形)标记集:

map_5 =folium.Map(location=[45.5236, -122.6750], zoom_start=13)

map_5.polygon_marker(location=[45.5012,-122.6655], popup="Ross Island Bridge",fill_color="#132b5e", num_sides=3,radius=10)#三边形标记

map_5.polygon_marker(location=[45.5132,-122.6708], popup="Hawthorne Bridge",fill_color="#45647d", num_sides=4,radius=10)#四边形标记

map_5.polygon_marker(location=[45.5275,-122.6692], popup="Steel Bridge",fill_color="#769d96", num_sides=6, radius=10)#四边形标记

map_5.polygon_marker(location=[45.5318,-122.6745], popup="Broadway Bridge",fill_color="#769d96", num_sides=8,radius=10) #八边形标记

map_5.create_map(path="bridges.html")

Vincent/Vega标记

Folium能够使用vincent 进行任何类型标记,并悬浮在地图上。

buoy_map= folium.Map(location=[46.3014, -123.7390], zoom_start=7,

tiles="StamenTerrain")

buoy_map.polygon_marker(location=[47.3489,-124.708], fill_color="#43d9de",radius=12, popup=(vis1, "vis1.json"))

buoy_map.polygon_marker(location=[44.639,-124.5339], fill_color="#43d9de",radius=12, popup=(vis2, "vis2.json"))

buoy_map.polygon_marker(location=[46.216,-124.1280], fill_color="#43d9de",radius=12, popup=(vis3, "vis3.json"))

GeoJSON/TopoJSON层叠加

GeoJSON TopoJSON层都可以导入到地图,不同的层可以在同一张地图上可视化出来:

geo_path= r"data/antarctic_ice_edge.json"

topo_path= r"data/antarctic_ice_shelf_topo.json"

ice_map= folium.Map(location=[-59.1759, -11.6016],tiles="Mapbox Bright", zoom_start=2)

ice_map.geo_json(geo_path=geo_path)#导入geoJson

ice_map.geo_json(geo_path=topo_path,topojson="objects.antarctic_ice_shelf")#导入Toposon

ice_map.create_map(path="ice_map.html")

分布图

Folium允许PandasDataFrames/Series类型和Geo/TopoJSON类型之间数据转换。Color Brewer 颜色方案也是内建在这个库,可以直接导入快速可视化不同的组合:

importfolium

importpandas as pd

state_geo= r"data/us-states.json"#地理位置文件

state_unemployment= r"data/US_Unemployment_Oct2012.csv"#美国失业率文件

state_data= pd.read_csv(state_unemployment)

#LetFolium determine the scale

map =folium.Map(location=[48, -102], zoom_start=3)

map.geo_json(geo_path=state_geo,data=state_data,

columns=["State", "Unemployment"],

key_on="feature.id",

fill_color="YlGn",fill_opacity=0.7, line_opacity=0.2,

legend_name="Unemployment Rate(%)")

map.create_map(path="us_states.html")

基于D3阈值尺度,Folium在右上方创建图例,通过分位数创建最佳猜测值,导入设定的阈值很简单:

map.geo_json(geo_path=state_geo,data=state_data,

columns=["State", "Unemployment"],

threshold_scale=[5, 6, 7, 8, 9,10],

key_on="feature.id",

fill_color="BuPu",fill_opacity=0.7, line_opacity=0.5,

legend_name="Unemployment Rate(%)",

reset=True)

map.create_map(path="us_states.html")

通过Pandas DataFrame进行数据处理,可以快速可视化不同的数据集。下面的例子中,df DataFrame包含6列不同的经济数据,我们将在下面可视化一部分数据:

2011年就业率分布图

map_1 =folium.Map(location=[48, -102], zoom_start=3)

map_1.geo_json(geo_path=county_geo,data_out="data1.json", data=df,

columns=["GEO_ID","Employed_2011"],key_on="feature.id",

fill_color="YlOrRd",fill_opacity=0.7, line_opacity=0.3,

topojson="objects.us_counties_20m")#2011就业率分布图

map_1.create_map(path="map_1.html")

2011年失业率分布图

map_2 =folium.Map(location=[40, -99], zoom_start=4)

map_2.geo_json(geo_path=county_geo,data_out="data2.json", data=df,

columns=["GEO_ID","Unemployment_rate_2011"],

key_on="feature.id",

threshold_scale=[0, 5, 7, 9, 11,13],(python 画动态图)

fill_color="YlGnBu", line_opacity=0.3,

legend_name="Unemployment Rate2011 (%)",

topojson="objects.us_counties_20m")#2011失业率分布图

map_2.create_map(path="map_2.html")

2011年中等家庭收入分布图

map_3 =folium.Map(location=[40, -99], zoom_start=4)

map_3.geo_json(geo_path=county_geo,data_out="data3.json", data=df,

columns=["GEO_ID","Median_Household_Income_2011"],

key_on="feature.id",

fill_color="PuRd",line_opacity=0.3,

legend_name="Median Household Income2011 ($)",

topojson="objects.us_counties_20m")#2011中等家庭收入分布图

map_3.create_map(path="map_3.html")

编译者简介

回复“志愿者”,了解我们及如何加入我们

往期精彩文章推荐,点击图片可阅读

亲测,手把手教你用Python抢票

手把手教你分析微信群聊记录,识别害群之马

手把手,74行代码实现手写数字识别

返回搜狐,查看更多


一.如何用Python实现动态图

首先找到要制作动图的视频。 点击打开观看。 视频观看过程中,打开动图制作虎弧港旧蕃搅歌些攻氓软件。 选择需要截取的画面。 点击录制几秒钟后,点击停止并保存。 保存到电脑,然后可以传到手机进行使用


二.python怎么动态画出一棵树

from turtle import Turtledef tree(tList,length,angle,factor): if length > 5: lst = [] for t in tList: t.forwa碃弗百煌知号版铜保扩rd(length); temp = t.clone(); t.left(angle); temp.right(angle); lst.append(t); lst.append(temp); tree(lst,length*factor,angle,factor);def makeTree(x,y): t = Turtle(); t.color('green'); t.pensize(5); t.hideturtle(); #t.getscreen().tracer(30,0); t.speed(10); t.left(90); t.penup(); t.goto(x,y); t.pendown(); t = tree([t],110,65,0.6375);makeTree(0,0)


三.如何用 Matplotlib 画 GIF 动图

第一个例子使用generator,每隔两秒,就运行函数data_gen:

[python] view plain copy
# -*- coding: utf-8 -*-

import nump姬姬灌肯弑厩鬼询邯墨y as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
axes1 = fig.add_subplot(111)
line, = axes1.plot(np.random.rand(10))

#因为update的参数是调用函数data_gen,所以第一个默认参数不能是framenum
def update(data):
line.set_ydata(data)
return line,
# 每次生成10个随机数据
def data_gen():
while True:
yield np.random.rand(10)

ani = animation.FuncAnimation(fig, update, data_gen, interval=2*1000)
plt.show()
第二个例子使用list(metric),每次从metric中取一行数据作为参数送入update中:
[python] view plain copy
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

start = [1, 0.18, 0.63, 0.29, 0.03, 0.24, 0.86, 0.07, 0.58, 0]

metric =[[0.03, 0.86, 0.65, 0.34, 0.34, 0.02, 0.22, 0.74, 0.66, 0.65],
[0.43, 0.18, 0.63, 0.29, 0.03, 0.24, 0.86, 0.07, 0.58, 0.55],
[0.66, 0.75, 0.01, 0.94, 0.72, 0.77, 0.20, 0.66, 0.81, 0.52]
]

fig = plt.figure()
window = fig.add_subplot(111)
line, = window.plot(start)
#如果是参数是list,则默认每次取list中的一个元素,即metric[0],metric[1],...
def update(data):
line.set_ydata(data)
return line,

ani = animation.FuncAnimation(fig, update, metric, interval=2*1000)
plt.show()...余下全文>>

查看"常见软件"分类更多问题

回顶部↑

四.如何用python matplotlib库画一个动态的超声波图像

不管是静态籂钉焚固莳改锋爽福鲸还是动态的, 都必须是你在特定的时间触发, 要不就写在程序里面,单击或者是。。 要不就接受键盘的输入,或者传一个参数。 希望帮到你!


五.如何用Python画实时更新的波动率曲线图

用python做是不是有些太重了,python只需要负责给前端返回格式化的数据就好啦,这种图片的事情让这种专业的工具去做岂不更好
实时刷新的曲线图 | Highcharts
需要一点点js知识和最简单的flask知识,但是时间成法长瘁短诓的搭痊但花本和效果表现肯定要优于python GUI


六.如何用python画出折线图

用pylab模块的plot函数
pylab.plot(x,y)法发瘁菏诓孤搭酞但喀其中x y都是数组
就能画出以x,y中元素为坐标的折线图


七.Python 绘图怎么对得到的图进行再修改

matplotlib可以实现和matlab画图差不多的功能。
如果要动态改而不是代码上改的话可法恭瘁枷诓磺搭委但莲以考虑用gui界面,试试tkinter的canvas吧


八.运行python程序turtle画图,cmd的方式,画完成之后图形窗口会自动关闭。同样的程序在 IDEL中不会

done()可以使窗口保持
from turtle import *color('red', 'yellow')begin_fill()while True: forward(200) left(170) i旦碃测度爻道诧权超护f abs(pos()) < 1: breakend_fill()done()

python 画动态图 使用Python绘制点击图、热图由美文导刊网(www.eorder.net.cn)收集整理,转载请注明出处!原文地址http://www.eorder.net.cn/pic57907/

文章评论
Copyright © 2006 - 2016 www.eorder.net.cn All Rights Reserved
美文导刊网 版权所有