Python生态绘图类库:Folium、PlotNine、LeafMap、PyGal、CartoPy、floWeaver

发布时间:2026/8/6 0:10:51

Python生态绘图类库:Folium、PlotNine、LeafMap、PyGal、CartoPy、floWeaver
继Python生态绘图类库Plotly、Altair、bqplot、plotlet之后本文继续汇总Python生态下特定领域下的绘图类库。Folium项目主页地图画图工具开源GitHub7.4K Star2.3K Fork类库基于Leaflet.js可在Jupyter Notebook里画出可缩放、可拖拽、带标记点的交互式地图。适用场景场景说明数据可视化报告在Jupyter里展示地理数据分布门店/网点分布图批量打点直观看到覆盖范围路线规划展示把GPS轨迹画出来热力图分析如人口密度、事故高发区实战基于pip安装pip install folium示例importfolium# 创建地图定位到北京mfolium.Map(location[39.9042,116.4074],zoom_start12)# 加标记点folium.Marker([39.9042,116.4074],popup天安门,iconfolium.Icon(colorred,iconinfo-sign)).add_to(m)# 保存HTML文件m.save(map.html)# 在Jupyter里直接显示m批量打点importfoliumfromfolium.pluginsimportHeatMapimportpandasaspd# 门店数据storespd.DataFrame({name:[店A,店B,店C],lat:[39.90,39.92,39.88],lng:[116.40,116.42,116.38]})mfolium.Map(location[39.90,116.40],zoom_start13)for_,rowinstores.iterrows():folium.Marker([row[lat],row[lng]],popuprow[name]).add_to(m)# 用经纬度数据生成热力图heat_data[[row[lat],row[lng]]for_,rowinstores.iterrows()]HeatMap(heat_data).add_to(m)m效果图画区域、画路径# 画折线folium.PolyLine(locations[(39.90,116.40),(39.92,116.42),(39.88,116.38)],colorblue,weight5).add_to(m)# 画圆如覆盖范围folium.Circle(location[39.90,116.40],radius1000,# 米colorred,fillTrue).add_to(m)展示效果PlotNine官网图形语法绘图开源GitHub4.8K Star254 Fork库把ggplot2风格的Grammar of Graphics带到Python强调数据、映射、几何对象、坐标和分面等概念比先画线再调样式的过程更声明式官方文档。适合统计探索、分组对比、教学材料、希望用一致语法组织复杂统计图、从R或ggplot2迁移来的团队以及需要统一图形语法的分析脚本。不适合极复杂的交互式Web图表或需要直接操控Matplotlib底层每个Artist的精细场景。特点语法清晰用aes、geom、facet、coord组合图表表达意图很明确适合统计图分面、颜色映射、几何层叠很自然承接PandasDataFrame字段直接进入映射分析脚本里衔接顺。实战基于pip安装pip install plotnine示例importpandasaspdfromplotnineimportaes,coord_flip,facet_wrap,geom_point,geom_col,ggplot,stat_smooth,theme_xkcd,theme_tufte,theme_minimalfromplotnine.dataimportmtcars(ggplot(mtcars,aes(wt,mpg,colorfactor(gear)))# 调用mtcars数据集以车重wt与每加仑行驶英里数mpg为坐标颜色受gear影响geom_point())绘制效果图(ggplot(mtcars,aes(wt,mpg,colorfactor(gear)))geom_point()stat_smooth(methodlm)# 绘制线性拟合曲线)效果图需要等十几秒钟(ggplot(mtcars,aes(wt,mpg,colorfactor(gear)))geom_point()stat_smooth(methodlm)facet_wrap(gear)# 按gear进行分组以多面展示数据)效果图(ggplot(mtcars,aes(wt,mpg,colorfactor(gear)))geom_point()stat_smooth(methodlm)facet_wrap(gear)theme_xkcd()# 绘制手绘风格主题# theme_tufte() # Tufte 风格主题# theme_minimal() # 系统默认# theme_bw() # 系统默认)可能会输出字体不存在渲染没有什么较大影响findfont: Font family xkcd not found. findfont: Font family Humor Sans not found.不想看到警告信息添加两行代码importlogging logging.getLogger(matplotlib.font_manager).setLevel(logging.ERROR)渲染效果也可从xkcd-font官网下载xkcd.ttf字体文件。更多示例dfpd.DataFrame({x:[1,2,3],y:[2,5,3]})pggplot(df,aes(x,y))geom_point()figp.draw(showFalse)print(layers:,len(p.layers))print(axes:,len(fig.axes))dfpd.DataFrame({team:[A,B,C],score:[7,4,9]})pggplot(df,aes(team,score))geom_col(fill#4c78a8)coord_flip()figp.draw(showFalse)print(layers:,len(p.layers))print(coord:,type(p.coordinates).__name__)print(axes:,len(fig.axes))dfpd.DataFrame({x:[1,2,1,2],y:[3,5,2,7],team:[A,A,B,B]})pggplot(df,aes(x,y,colorteam))geom_point(size3)facet_wrap(team)figp.draw(showFalse)print(facets:,type(p.facet).__name__)print(panels:,len(fig.axes))解读把不同统计视角拆成geom和facet比在一段imperative代码里不断改axes更容易维护。注意事项固定输入字段、数据量范围和缺失值策略明确图表是静态导出、Notebook交互、桌面GUI还是Web嵌入在目标运行环境里做一次渲染或导出验证LeafMap官网基于folium开源GitHub3.8K Star469 Fork零代码地理数据分析与交互式绘图包。能力超多后端随意切换可切换到folium、ipyleaflet、kepler.gl、pydeck、bokeh等不同后端根据场景选最顺手的工具交互式绘图工具内置图形界面很多操作如加载数据、画图不用写代码在Jupyter里点点鼠标就能完成分析能力强大集成WhiteboxTools分析工具库可直接在地图上进行水文分析、地形分析、LiDAR数据处理等对新手和专家都友好初学者能快速上手出图专业用户也能用它处理复杂的空间数据和分析任务实战基于pip安装pip install leafmap示例PyGal官网SVG 图表生成开源GitHub2.8K Star419 Fork。创建图表对象、设置标签、添加series、渲染为SVG。相比大型交互式可视化框架更适合在文档、邮件图表、静态页面和报告里产出可缩放矢量图、需要SVG文件的自动化脚本以及需要轻量、可嵌入、无需复杂前端依赖时。适合在构建流程里生成、缓存、嵌入而不是依赖运行时再画。不适合高度复杂的交互式分析平台或需要海量数据点实时重绘的科学计算界面。特点SVG输出图表天然可缩放适合文档和静态页面API简洁Bar、Line、Radar等图表对象直接添加数据即可依赖轻不用完整前端框架也能生成可用图表资产实战基于pip安装pip install pygal示例importpygal chartpygal.Bar()chart.titlesaleschart.x_labels[Jan,Feb,Mar]chart.add(sales,[120,160,90])svgchart.render()print(series:,len(chart.raw_series))print(svg bytes:,len(svg))chartpygal.Line(interpolatecubic)chart.add(A,[1,3,2,5])chart.add(B,[2,2,4,3])names[meta[title]fordata,metainchart.raw_series]svgchart.render()print(series names:,names)print(series count:,len(chart.raw_series))print(svg bytes:,len(svg))chartpygal.Radar()chart.x_labels[speed,quality,cost]chart.add(plan A,[8,7,5])chart.add(plan B,[6,9,7])svgchart.render(is_unicodeTrue)print(radar labels:,list(chart.x_labels))print(has svg:,svg.lstrip().startswith(?xml))CartoPy面向地图绘制和地理投影的开源GitHub1.6K Star396 Fork库常和Matplotlib、NumPy、GeoPandas一起使用。把经纬度坐标、投影坐标、地图要素和坐标轴变换放进同一套模型里管理。适合气象图、海洋航线、遥感辅助图、区域统计地图等场景下的可视化官方文档。特点投影清楚CRS对象负责坐标系统和变换适合在图上混合经纬度、墨卡托等坐标要素可控Natural Earth要素可按类别和比例尺组织便于控制海岸线、陆地等素材生态兼容和Matplotlib配合紧密适合把科学计算结果落到地图视图里不适合只想快速在网页里拖动地图的场景这类需求通常Leaflet、Mapbox或Folium更合适。实战基于pip安装pip install cartopy示例importcartopy.crsasccrsimportcartopy.featureascfeatureimportnumpyasnp srcccrs.PlateCarree()dstccrs.Mercator()ptsdst.transform_points(src,np.array([0,120]),np.array([0,30]))fmtlambdarow:[float(round(v,2))forvinrow[:2]]print(threshold:,round(src.threshold,3))print(points:,pts.shape)print(x0/y0:,fmt(pts[0]))print(x1/y1:,fmt(pts[1]))landcfeature.NaturalEarthFeature(physical,land,110m)print(feature:,land.name)print(category:,land.category)print(scale:,land.scale)解读把经纬度点转换到Web/墨卡托类坐标验证数据坐标能进入目标投影定义Natural Earth地图要素后续可交给Matplotlib轴对象渲染注意事项固定Python、核心库和系统依赖版本避免环境漂移用小样本覆盖输入边界、空值、异常值和坐标/数组维度把外部服务、投影数据或编译依赖写进部署文档floWeaver开源GitHub464 Star89 Fork流数据可视化可将类似于“源-目标-数值”这种表单数据变成比例精准、配色高级的桑基图官方文档。组件floWeaver负责逻辑层ipysankeywidget负责在Jupyter里渲染图表用ProcessGroup定义聚合类别用Waypoint标记节点SankeyDefinition负责布局Weave负责数据映射。实战基于pip安装pip install floweaver示例fromfloweaverimportSankeyDefinition,WeavefromfloweaverimportProcessGroup,Waypointimportpandasaspd group_electProcessGroup(电子产品)group_homeProcessGroup(家居生活)group_clothProcessGroup(服饰美妆)w_electWaypoint(group_elect,title电子)w_homeWaypoint(group_home,title家居)w_clothWaypoint(group_cloth,title服装)sankey_defSankeyDefinition(flows[(w_elect,w_home),(w_elect,w_cloth),(w_home,w_cloth)],waypoints[w_elect,w_home,w_cloth])datapd.DataFrame({source:[电子,电子,家居],target:[家居,服装,服装],value:[100,50,30]})weaveWeave(sankey_def,data,link_columns[source,target,value])weave.to_widget()sankey_def.flows[(w_elect,w_home),(w_home,w_cloth)]weave_newWeave(sankey_def,data,link_columns[source,target,value])weave_new.to_widget()TODO上述代码在2.0.1版本跑不通。优势在于它把“流”的语法抽象得非常干净几行代码就能出专业级桑基图且配色省心。不足高度绑定ipysankeywidget只能用于Jupyter Notebook或Lab没法直接导出PNG或用在Django网站上。

相关新闻

Vue 中 ref 和 reactive 有什么区别?该用哪个?

Vue 中 ref 和 reactive 有什么区别?该用哪个?

2026/8/6 0:10:51

Vue 中 ref 和 reactive 有什么区别?该用哪个? 一句话总结:ref 适合「基本类型 需要重新赋值」的场景,reactive 适合「对象/数组 不需要整体替换」的场景。记不住?基本类型用 ref,对象用 reactive&#x…

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

2026/8/6 0:00:51

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

2026/8/6 0:00:51

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

同步解调器:从模拟乘法到数字锁相环的实现原理与工程实践

同步解调器:从模拟乘法到数字锁相环的实现原理与工程实践

2026/8/6 1:10:54

1. 从“同步”二字说起:解调器的核心挑战在信号处理的世界里,我们常常需要从一个混杂着噪声、载波和各种干扰的信号中,把真正有用的信息“掏”出来。这个过程,就是解调。而“同步解调器”,听起来就比普通的包络检波器要…

从ChatGPT提示词到Shopify商品页:AI模板产品化全链路拆解(含自动交付系统部署脚本)

从ChatGPT提示词到Shopify商品页:AI模板产品化全链路拆解(含自动交付系统部署脚本)

2026/8/6 1:10:54

更多请点击: https://intelliparadigm.com 第一章:AI做模板售卖 人工智能正深刻重塑数字内容生产范式,其中“AI生成模板商业化分发”已成为低代码/无代码生态中最具活力的细分赛道。开发者或设计师利用大语言模型与多模态生成能力&#xff0…

3步解锁跨语言自由:Windows实时屏幕翻译神器Translumo终极指南

3步解锁跨语言自由:Windows实时屏幕翻译神器Translumo终极指南

2026/8/6 1:10:54

3步解锁跨语言自由:Windows实时屏幕翻译神器Translumo终极指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo …

揭秘福建省建设局网站背后的数字化变革与便民服务新机遇

揭秘福建省建设局网站背后的数字化变革与便民服务新机遇

2026/8/6 1:10:54

在这个数字化浪潮汹涌澎湃的时代,我们身处福建这片充满活力与机遇的热土,每天都在见证着城市的生长与变革。作为一名长期关注家乡发展的观察者,我常想,究竟是什么在背后推动着这一切井然有序地进行?当我们在街头漫步,看着高楼林立,基础设施日益完善,背后往往是无数数据…

小白/程序员必看:收藏这份A2A通信指南,轻松实现独立Agent协作与交付

小白/程序员必看:收藏这份A2A通信指南,轻松实现独立Agent协作与交付

2026/8/6 1:10:54

本文深入解析A2A通信机制,阐述独立Agent之间如何发现、协作与交付。通过对比Workflow、MCP与A2A的适用场景,详解Agent Card、Message、Task和Artifact的核心概念与实现方式,并针对Polling、Streaming SSE和Webhook等长任务状态获取机制进行对…

AI学日语到底靠不靠谱?实测12款工具+378小时数据对比,这3个模型真正改变学习轨迹

AI学日语到底靠不靠谱?实测12款工具+378小时数据对比,这3个模型真正改变学习轨迹

2026/8/6 1:00:54

更多请点击: https://kaifayun.com 第一章:AI学日语到底靠不靠谱?实测12款工具378小时数据对比,这3个模型真正改变学习轨迹 过去三个月,我们对12款主流AI日语学习工具(含ChatGPT-4o、Claude 3.5 Sonnet、G…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Unity相机抖动插件Camera-Shake集成与应用实战指南

Unity相机抖动插件Camera-Shake集成与应用实战指南

2026/8/6 0:00:51

1. 项目概述与核心价值最近在做一个动作游戏,需要给主角的重击和爆炸场景加点料,让打击感更足。我第一时间就想到了给相机加个抖动效果,毕竟这是提升玩家沉浸感最简单直接的手段之一。自己手写一个也不是不行,但时间成本高&#x…

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

2026/8/6 0:00:51

1. 项目概述:为什么需要一份3.7版本的专属适配指南?如果你是一位使用Cocos Creator开发微信小游戏的开发者,并且项目正运行在3.7版本上,那么你很可能已经感受到了那份“甜蜜的烦恼”。一方面,Cocos Creator 3.7是一个功…

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

2026/8/6 0:00:51

1. 项目概述:一次开源AI编程课程的深度重构 最近,我把自己的开源AI编程课程《Claude Code》做了一次从里到外的大更新。如果你对利用Claude、Codex这类大模型来辅助编程感兴趣,或者正在寻找一个能跟上最新AI编码工具迭代节奏的学习路径&#…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/4 13:34:51

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…