【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构成了可缩放的组合排列。

下一步

命名

相关推荐
yuan199972 分钟前
H264视频压缩matlab帧内预测帧间预测熵编码
开发语言·matlab
aini_lovee4 分钟前
基于MATLAB GUI的信号处理系统设计与实现
开发语言·matlab·信号处理
kylezhao201915 分钟前
C#上位机实现权限管理
开发语言·c#
古城小栈18 分钟前
rust 借用,三巨头之一
开发语言·rust
小北方城市网19 分钟前
第 9 课:Python 全栈项目性能优化实战|从「能用」到「好用」(企业级优化方案|零基础落地)
开发语言·数据库·人工智能·python·性能优化·数据库架构
superman超哥25 分钟前
Rust 内存泄漏检测与防范:超越所有权的内存管理挑战
开发语言·后端·rust·内存管理·rust内存泄漏
悟能不能悟37 分钟前
java HttpServletRequest 设置header
java·开发语言
云栖梦泽42 分钟前
易语言运维自动化:中小微企业的「数字化运维瑞士军刀」
开发语言
刘97531 小时前
【第23天】23c#今日小结
开发语言·c#
郝学胜-神的一滴1 小时前
线程同步:并行世界的秩序守护者
java·linux·开发语言·c++·程序人生