首页/新闻资讯/正文详情

Altair Circle 标记完全指南:mark_circle 用法、size 属性与散点图实战

发布时间:2026/9/24 15:22:16 来源:云帆数科 栏目:资讯中心
Altair Circle 标记完全指南:mark_circle 用法、size 属性与散点图实战
数据可视化【免费下载链接】altairDeclarative visualization library for Python项目地址https://gitcode.com/gh_mirrors/al/altair点击查看免费下载导读本文围绕 Altair声明式 Python 可视化库中circle标记展开系统讲解mark_circle()的用法、circle标记与point标记的区别、专用属性size的语义并结合仓库源码与真实示例给出可复跑的散点图代码。读完本文你将掌握如何用mark_circle()快速绘制散点图、气泡图理解其填充与尺寸的底层行为并能进一步结合size/color/tooltip等编码通道做出更丰富的可视化。1. circle 标记是什么Altair 官方文档在 circle.rst 中开宗明义地定义circle标记与point标记相似区别在于(1)shape的值永远被固定为circle(2) 默认情况下它们是填充filled的。这句话点出了circle的本质——它是point的一种“特化形式”。散点图中最常见的用法就是把一个数据点画成一个实心圆点这正是circle标记的定位。与它形成对照的是 point.rst 中描述的point标记默认情况下point标记只有边框、内部是透明的可以通过设置filledTrue来创建填充的点。也就是说对比项point标记circle标记shape 取值可自由指定circle、square、cross、diamond、triangle 等固定为circle默认填充不填充仅描边填充典型用途需要形状编码或描边样式通用散点图、地图上的地理点这一默认行为在 Vega-Lite 模式定义中也有据可查。core.py 中对filled属性写道默认值为point、line、rule标记以及 graticule 数据源的geoshape标记为false其余情况为true。circle不在此列因此其filled默认值为true即实心圆点。2. circle 标记的属性体系一个circle标记定义可以包含所有 标准标记属性如color、opacity、stroke、tooltip等外加以下这个专有属性2.1 专有属性size属性类型说明size数值 / 表达式引用ExprRef标记的默认尺寸size的确切语义在源码的MarkDef模式定义core.py中有详细注释对于point/circle/squaresize表示标记的像素面积。注意该值设置的是符号的面积其边长会随该值的平方根增长。 对于bar它表示条带的像素宽度对于text它表示字体大小像素。这是一个容易踩坑的细节size不是“半径”也不是“直径”而是面积。若想让圆点看起来大一倍需要把size乘以 4面积增大为 4 倍、直径才增大为 2 倍而不是乘以 2。由于面积与边长是平方根关系size的数值跨度往往较大常见取值从几到几百。2.2 标准标记属性除size外circle同样支持MarkDef中定义的标准属性例如依据 core.py 的 MarkDef 文档color默认填充颜色默认值#4682b4fill/stroke的优先级高于coloropacity整体透明度fillOpacity填充透明度默认1stroke/strokeWidth/strokeOpacity描边颜色与宽度tooltip是否显示提示信息可传True或字段定义cursor、href、aria等辅助属性。这些属性既可以作为关键字参数直接传入mark_circle()也可以在encode()中映射到数据字段实现按数据取值动态变化。3. 源码级解析mark_circle 是如何实现的mark_circle()是Chart对象上的方法定义在 mixins.pyuse_signature(_MarkDef) def mark_circle(self, **kwds: Any) - Self: Set the charts mark to circle (see :class:MarkDef). copy self.copy(deepFalse) # type: ignore if any(val is not Undefined for val in kwds.values()): copy.mark core.MarkDef(typecircle, **kwds) else: copy.mark circle return copy从源码可以看到两条实现事实浅拷贝非原地修改方法返回的是当前图表对象的一份浅拷贝self.copy(deepFalse)并在这份拷贝上设置mark因此不会污染原图表对象也支持链式调用。两种底层表示当没有传入任何标记属性如mark_circle()时mark被设置为字符串circle——Vega-Lite 的最简简写形式当传入了任意属性如mark_circle(size50)时mark被构造为core.MarkDef(typecircle, **kwds)模式定义对象。也就是说mark_circle(size50, colorsteelblue)最终会被序列化为{mark: {type: circle, size: 50, color: steelblue}}这样的 Vega-Lite 规范。这种“无参用简写、有参用 MarkDef”的设计保证了生成规范的精简与可读。顺带一提mark_circle与mark_point、mark_square等共享同一套_MarkDef签名机制use_signature(_MarkDef)因此 IDE 中会得到完整的参数提示类型上则统一走 core.py 的MarkDef模式包装类。4. 实战用 circle 标记绘制散点图原文档给出的最小可运行示例是汽车数据集上的散点图。为了与原文档保持一致且保证可复现建议使用当前仓库的 datasets 接口获取数据 URLimport altair as alt from altair.datasets import data source data.cars.url alt.Chart(source).mark_circle().encode( x(Horsepower:Q), y(Miles_per_Gallon:Q), )代码要点说明data.cars.url返回cars数据集的远程 URL字符串无需本地文件当前仓库的 datasets 模块altair/datasets/init.py支持data.cars()直接加载为 DataFrame、data.cars.url获取地址并可指定enginepolars/pandas/pyarrow等后端x与y使用带类型后缀的简写字段描述Horsepower:QQ 表示定量/连续数据与Miles_per_Gallon:Qmark_circle()不传任何参数此时底层mark会被简写为字符串circle。运行后即可得到一张“马力Horsepower对每加仑英里数Miles_per_Gallon”的散点图每个观测点渲染为一个默认填充的实心圆点。4.1 指定 size 属性若想控制圆点大小直接传入size像素面积alt.Chart(source).mark_circle(size100).encode( xHorsepower:Q, yMiles_per_Gallon:Q, )仓库测试中也有同样的用法例如 deviation_ellipses.py 中的mark_circle(size50, tooltipTrue)。4.2 结合 size 通道绘制气泡图把第三个字段映射到size编码通道散点图就升级为气泡图alt.Chart(source).mark_circle().encode( xHorsepower:Q, yMiles_per_Gallon:Q, sizeAcceleration:Q, )此时圆点面积随Acceleration字段取值连续变化这与mark_circle(size100)的固定尺寸不同前者是数据驱动的编码通道后者是标记的固定默认值。仓库中的 gapminder_bubble_plot.py 正是这类气泡图的完整范例。4.3 叠加颜色与透明度circle支持所有标准标记属性例如按分类字段着色、设置透明度以便观察重叠点alt.Chart(source).mark_circle(opacity0.6).encode( xHorsepower:Q, yMiles_per_Gallon:Q, colorOrigin:N, )其中opacity0.6作为标记属性固定透明度colorOrigin:N将产地名义型字段映射为颜色。在点密度高的散点图中适度降低透明度能有效缓解点与点的遮挡问题仓库示例 interval_selection_map_quakes.py 就使用了mark_circle(opacity0.35, tooltipTrue)。5. circle 与 point、square 的取舍circle vs point需要保持圆形、且想要默认填充时优先用circle需要给不同类别分配不同形状如正方形、三角形、菱形时必须用point并映射shape通道参考 point.rst 中的形状列表。circle vs square二者是“同构”关系——都固定形状、默认填充唯一区别是几何形状本身。mixins.py 中mark_square与mark_circle的实现完全对称均按“无参简写字符串、有参构造 MarkDef”的规则生成。选择依据纯粹是视觉语义。6. 延伸circle 在地理可视化中的典型应用由于circle固定为圆形且默认填充它常被用来渲染地理点。在 point.rst 的 Geo Point 示例中mark_circle配合longitude/latitude通道与投影即可在地图上标出机场位置import altair as alt from altair.datasets import data airports data.airports() states alt.topo_feature(data.us_10m.url, featurestates) background alt.Chart(states).mark_geoshape( filllightgray, strokewhite ).properties(width500, height300).project(albersUsa) points alt.Chart(airports).mark_circle( size10, colorsteelblue, ).encode( longitudelongitude:Q, latitudelatitude:Q, tooltip[name, city, state], ) background points这里mark_circle(size10, colorsteelblue)固定了圆点面积与颜色tooltip展示机场信息background points则利用图层叠加把圆点绘制在美国州界底图之上。仓库中的 airport_connections.py 与 groupby-map.py 也展示了mark_circle在地理/分组地图中的更多组合方式。7. 小结circle是point的特化shape固定为circle默认填充适合散点图与地理点图专有属性size表示像素面积而非半径调整视觉大小需按平方关系换算mark_circle()无参时生成简写字符串circle有参时构造MarkDef(typecircle, **kwds)见 mixins.py通过size/color/opacity/tooltip等编码通道可将散点图扩展为气泡图、着色散点图与交互式地图点层仓库 tests/examples_arguments_syntax 目录下有大量可直接借鉴的完整示例。若需进一步了解标记属性的完整清单可查阅 marks 索引文档 与 core.py 中MarkDef的完整参数文档。赞分享数据可视化【免费下载链接】altairDeclarative visualization library for Python项目地址https://gitcode.com/gh_mirrors/al/altair点击查看免费下载相关推荐Lucide React 图标尺寸调整完全指南size 属性、CSS 与 Tailwind 实战Lucide React 图标尺寸调整完全指南size 属性、CSS 与 Tailwind 实战 本篇指南聚焦 Lucide 官方 React 图标库 luc文档教程Lucide Solid 图标尺寸控制完全指南size 属性与 CSS 缩放实战Lucide Solid 图标尺寸控制完全指南size 属性与 CSS 缩放实战 本文面向使用 Solid 框架的开发者系统讲解 Lucide 图标库So前端UI组件设计系统Bokeh 散点图Scatter Plots完全指南内置标记、自定义标记与图像标记Bokeh 散点图Scatter Plots完全指南内置标记、自定义标记与图像标记 导读 散点图是数据可视化中最基础也最常用的图形之一。Bokeh 提供了数据可视化图表库上一篇Claudia MCP服务器管理统一配置Model Context Protocol下一篇3步搞定Wan2.2视频生成模型本地部署AI视频创作一键开启创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

FluentValidation 与 ASP.NET Core 集成实战指南:手动验证、自动验证与 Minimal APIs 全解析
FluentValidation 与 ASP.NET Core 集成实战指南:手动验证、自动验证与 Minimal APIs 全解析

后端 【免费下载链接】FluentValidation A popular .NET validation library for building strongly-typed validation rules. 项目地址: https://gitcode.com/gh_mirrors/fl/FluentValidation 点击查看 免费下载 FluentValidation 是 .NET 生态中用于构建强类型验… · 2026/9/24 15:22:16

Comp AI CRM 的 React 事件处理器 Ref 存储最佳实践:从 useRef 到 useEffectEvent 的稳定订阅指南
Comp AI CRM 的 React 事件处理器 Ref 存储最佳实践:从 useRef 到 useEffectEvent 的稳定订阅指南

后端前端CRM人工智能AI Agent 【免费下载链接】crm Comp AI CRM is an open source, CRM designed for AI agents. Agentic-first CRM. 项目地址: https://gitcode.com/gh_mirrors/crm48/crm 点击查看 免费下载 在 Comp AI CRM(Agentic-first 开源 CRM&… · 2026/9/24 15:22:09

如何快速上手图片转视频:ComfyUI-WanVideoWrapper新手完整指南
如何快速上手图片转视频:ComfyUI-WanVideoWrapper新手完整指南

如何快速上手图片转视频:ComfyUI-WanVideoWrapper新手完整指南 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 你手里有张静态图,想让它动起来,但不知道从哪下… · 2026/9/24 15:22:09

I²C为什么必须用开漏输出?原理、线与逻辑与上拉电阻设计
I²C为什么必须用开漏输出?原理、线与逻辑与上拉电阻设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 15:54:59

建筑 AI 出图工具单轮同场测试:速度、空间保持与局部修改
建筑 AI 出图工具单轮同场测试:速度、空间保持与局部修改

测试日期:2026年9月23日。本文记录一次非盲测、单轮测试,不构成产品排名、购买建议或性能承诺。 建筑概念阶段常见的两个问题是:白模转效果图需要多久,以及局部修改能不能只改指定区域。为了减少不同输入带来的影响,本… · 2026/9/24 15:54:52

RK3588实战指南:KVM/QEMU打造ARM虚拟化服务器
RK3588实战指南:KVM/QEMU打造ARM虚拟化服务器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 15:54:52

ComfyUI-WanVideoWrapper 上手指南:5 步跑通文生视频到口型动画
ComfyUI-WanVideoWrapper 上手指南:5 步跑通文生视频到口型动画

ComfyUI-WanVideoWrapper 上手指南:5 步跑通文生视频到口型动画 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 想给电商团队交一条 5 秒的产品宣传视频,拖入现成工作流却… · 2026/9/24 15:54:39

STM32 Motor Control Workbench 5.4.4 FOC调试实战:从PID盲调到半自动整定
STM32 Motor Control Workbench 5.4.4 FOC调试实战:从PID盲调到半自动整定

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 15:54:32

GNSS四大频段物理本质与场景化选型指南
GNSS四大频段物理本质与场景化选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 15:54:32

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码