【Wolfram语言】37 布局与显示

37 布局与显示

词汇 (Vocabulary)

函数 说明
Framed[expr] 添加边框
Labeled[expr, lab] 添加标签
Callout[expr, lab] 添加标注(带指向线)
Tooltip[expr, lab] 添加交互提示
Legended[expr, lab] 添加图例
Row[{expr1, expr2, ...}] 横向排列
Column[{expr1, expr2, ...}] 纵向排列
GraphicsRow[{...}] 可缩放的横向图形排列
GraphicsColumn[{...}] 可缩放的纵向图形排列
GraphicsGrid[array] 可缩放的网格排列

加边框

嵌套函数一章中使用 Framed 为显示的内容添加边框。

生成一个数字并为其添加边框:

wl 复制代码
In[]:=Framed[2^100]

边框选项

可以给 Framed 指定选项。

指定背景颜色和边框样式:

wl 复制代码
In[]:=Framed[2^100, Background -> LightYellow, FrameStyle -> LightGray]

加标签

Labeled 可用于为对象添加标签。

为带边框的数字添加标签:

wl 复制代码
In[]:=Labeled[Framed[2^100], "一个大数"]

这会为带有黄色背景的数字添加标签:

wl 复制代码
In[]:=Labeled[Style[2^100, Background -> Yellow], "一个大数"]

标签样式

为标签添加样式:

wl 复制代码
In[]:=Labeled[Style[2^100, Background -> Yellow], Style["一个大数", Italic, Orange]]

图形标签

Labeled 也可用于图形。

饼图

制作带有部分扇区标签的饼图:

wl 复制代码
In[]:=PieChart[{Labeled[1, "one"], Labeled[2, "two"], Labeled[3, Red], Labeled[4, Orange], 2, 2}]
散点图

绘制带标签的点:

wl 复制代码
In[]:=ListPlot[{Labeled[1, "one"], Labeled[2, "two"], Labeled[3, Pink], 
  Labeled[4, Yellow], 5, 6, 7}]

绘制标注其值的前几个素数:

wl 复制代码
In[]:=ListPlot[Table[Labeled[Prime[n], Prime[n]], {n, 15}]]

加标注

Labeled 是把标签放在对象旁边。

如果更喜欢带有小线指向目标的标注 ,可用 Callout 代替 Labeled
Callout 创建带指向线的标注:

wl 复制代码
In[]:=ListPlot[Table[Callout[Prime[n], Prime[n]], {n, 15}]]

加提示

还有多种注释图形的方法。

Style 插入样式,Tooltip 生成鼠标悬停时显示的交互提示,

wl 复制代码
In[]:=PieChart[{Style[3, Red], Style[2, Green], Style[1, Yellow], 1, 2}]

加图例

Legended 在旁边生成图例。

为前三个饼图扇区指定样式:

为扇区设置词语和颜色作为图例:

wl 复制代码
In[]:=PieChart[{Legended[1, "one"], Legended[2, "two"], Legended[3, Pink], Legended[4, Yellow], 2, 2}]


网页的默认绘图主题颜色更鲜明:

wl 复制代码
In[]:=PieChart[{1, 2, 3, 4, 2, 2}, PlotTheme -> "Web"]

自动注释

如果你希望 Wolfram语言自动选择注释方式,只需用规则 (->)给出注释。

ListPlot 中,用规则指定的注释以 callouts 实现:

wl 复制代码
In[]:=ListPlot[{1 -> "one", 2 -> "two", 3 -> Pink, 4 -> Yellow, 5, 6, 7}]

饼图

PieChart 中,字符串被视为标签,颜色被视为样式:

wl 复制代码
In[]:=PieChart[{1 -> "one", 2 -> "two", 3 -> Blue, 4 -> Red}]

组合展示

将不同对象组合以便展示是常见需求。

RowColumnGrid 是方便的排列方式。

在一行中显示对象列表:

wl 复制代码
In[]:=Row[{Yellow, Pink, Cyan}]

在一列中显示对象:

wl 复制代码
In[]:=Column[{Yellow, Pink, Cyan}]

图形组合

使用 GraphicsRowGraphicsColumnGraphicsGrid 可将图形按总体尺寸排列。

图形网格

生成一组随机饼图并调整大小以适配:

wl 复制代码
In[]:=GraphicsGrid[Table[PieChart[RandomReal[10, 5]], 3, 6]]

为所有图形添加外框:

wl 复制代码
In[]:=GraphicsGrid[Table[PieChart[RandomReal[10, 5]], 3, 6], Frame -> All]

总结

  • Framed为显示结果添加边框。
  • Labeled为数据添加标签;Callout为数据添加引线标注。
  • Tooltip添加鼠标悬停提示;Legend添加数据图例。
  • 可以用规则方式书写数据,从而获得数据自动标注。
  • Row结果横向排列;Column纵向排列。
  • GraphicsRowGraphicsColumnGraphicsGrid构成了可缩放的组合排列。

下一步

命名

相关推荐
玄同76518 小时前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
czy878747518 小时前
深入了解 C++ 中的 `std::bind` 函数
开发语言·c++
消失的旧时光-194318 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
yq19820430115618 小时前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
一个public的class18 小时前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
Jinkxs18 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&18 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
BD_Marathon18 小时前
设计模式——依赖倒转原则
java·开发语言·设计模式
devmoon19 小时前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
Evand J19 小时前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop