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 有什么区别?该用哪个?

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

2026/8/7 4:06:50 阅读更多 →
基金持股数据统计分析:用Python追踪机构持仓变化与抱团效应

基金持股数据统计分析:用Python追踪机构持仓变化与抱团效应

基金持股数据统计分析:用Python追踪机构持仓变化与抱团效应 基金持股数据是追踪机构动向的重要窗口。每只股票被多少基金持有、基金在增持还是减持,这些信息能帮我们判断机构对某只股票的态度。我之前写了一套基金持股分析工具,把全市场的基金…

2026/8/7 2:19:11 阅读更多 →
【PID优化】PSO SSA GWO三种智能算法优化PID参数整定

【PID优化】PSO SSA GWO三种智能算法优化PID参数整定

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

2026/8/7 2:52:14 阅读更多 →

最新新闻

Win11 装 OpenClaw2.9.0 总失败?一套方案搞定拦截、离线、权限全部报错

Win11 装 OpenClaw2.9.0 总失败?一套方案搞定拦截、离线、权限全部报错

核心亮点:提供全程可视化的图形操作界面,自动补齐全套运行依赖,数据独立存储于本地设备,兼容多款主流大模型,并采用轻量化的 45.7MB 整合压缩包。 教程适配:OpenClaw | 适配 Windows 10/11 与 macOS 双系统…

2026/8/7 4:06:20 阅读更多 →
Linux服务器幻兽帕鲁配置修改:从权限管理到参数调优全指南

Linux服务器幻兽帕鲁配置修改:从权限管理到参数调优全指南

1. 项目概述:为什么要在Linux服务器上修改幻兽帕鲁配置?如果你和我一样,在Linux服务器上部署了《幻兽帕鲁》的专用服务器,那么你迟早会碰到一个核心需求:调整游戏规则。默认的服务器设置,无论是资源倍率、孵…

2026/8/7 4:06:20 阅读更多 →
基于YOLO与PyQt5的茶叶病害智能检测系统:从数据到桌面应用全流程实践

基于YOLO与PyQt5的茶叶病害智能检测系统:从数据到桌面应用全流程实践

1. 项目概述与核心价值 最近在整理一些农业智能化相关的项目,发现茶叶病害的早期识别和精准防治一直是个痛点。传统的病害检测依赖农技人员的经验,不仅效率低,而且容易因主观判断导致误诊,错过最佳防治期。正好手头有之前做目标检…

2026/8/7 4:06:20 阅读更多 →
GOC编程:用C++图形化学习,从画图到实战的完整路径

GOC编程:用C++图形化学习,从画图到实战的完整路径

1. 为什么选择GOC编程作为C图形化学习的起点?如果你正在学习C,或者想引导孩子入门编程,大概率听说过Scratch、Python这些图形化或脚本语言。它们上手快,能快速做出效果,但很多朋友学到后面会感觉“差点意思”——要么是…

2026/8/7 4:06:20 阅读更多 →
如何快速配置OBS Spout2插件:3个简单步骤实现高效视频流传输

如何快速配置OBS Spout2插件:3个简单步骤实现高效视频流传输

如何快速配置OBS Spout2插件:3个简单步骤实现高效视频流传输 【免费下载链接】obs-spout2-plugin A Plugin for OBS Studio to enable Spout2 (https://github.com/leadedge/Spout2) input / output 项目地址: https://gitcode.com/gh_mirrors/ob/obs-spout2-plug…

2026/8/7 4:06:20 阅读更多 →
一加13T深度解析:小直屏性能旗舰如何满足开发者与硬核用户需求

一加13T深度解析:小直屏性能旗舰如何满足开发者与硬核用户需求

如果你最近在关注安卓旗舰手机,可能会发现一个有趣的现象:各大厂商都在卷影像、卷大屏、卷AI,但真正把“小尺寸直屏”和“极致性能”结合得恰到好处的选择,却越来越少。对于习惯了单手操作、追求纯粹性能体验的用户来说&#xff0…

2026/8/7 4:05:20 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →