创建自定义表格表示的函数
我使用下面的代码来概述我的部分数据。
-
从以下代码中创建函数的最佳方法是什么?
-
它将采用 dataList 以及一些图形选项(例如颜色)作为参数,并返回自定义的表格表示形式,如下所示。
overviewtheData=Text@Grid[{地图[旋转[文本[#]], 90度]&,数据[[1]]]}~加入~数据[[2;;]], 背景->{{{{白色,粉色}},{1->白色}}}, 分隔符->{全部,{1->True,2->True,0->True}}, ItemSize->{1->5,自动}, 对齐方式->顶部, 框架->真实, 框架样式->厚度[2], ItemStyle->{自动,自动,{{1,1}, {1,Length@data[[1]]}}->指令[FontSize->15,Black,Bold]}]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会按照通常的方式进行
我不确定您最后想要求什么部分
这样的图作为输出
...I'd do it the usual way
I am not sure what you are trying to ask for in the last part
such a graph as an output
...贝利撒留给出了基本方法。我将介绍一种高级方法,因为你看起来很渴望学习。
首先我要说的是,我看到了我认为对您的代码的简化,并且我做了它们,希望没有错误。
我将在下面的插图中使用此示例数据:
目标
由于使用的主要函数是
Grid
,因此允许向其传递选项是有意义的。您有一系列定义表格的选项。我希望能够方便地更改这些。
我想要
Grid
无法理解自定义选项的可能性。实现
目标 #1
添加参数模式
opts:OptionsPattern[]
,它与Option -> 的任何序列匹配。设置
参数,并将其命名为opts
。 (有关更多信息,请参阅:OptionsPattern。)然后,选择 被插入到基本函数中,位于
Grid
的其他选项之前。这允许任何明确给出的选项覆盖默认值,或者给出新的选项。示例:
目标#2
定义表格格式的选项可以与函数主体分开。这将使它们可以方便地更改或引用。我首先使用
ClearAll
清除先前的定义。然后我为设置默认
:Options
customTabular现在功能正常了。这里
Options@customTabular
获取上面给出的规则。现在,您可以使用
SetOptions
轻松更改默认值。示例:目标 #3
现在我想添加一个不的选项传递到
网格
。我选择“Rotation”来更改标题行的文本旋转。我再次清除了先前的定义和默认选项。请注意包含
"Rotation" ->列表中的 90 度
。现在我需要一种方法来使用这个新选项,并且需要一种方法来阻止此选项发送到
Grid
:我使用
OptionValue
如果没有明确给出,它将给出默认值。我使用
Grid
选项>过滤规则。我首先将任何显式选项加入到
Options@customTabular
列表的前面,再次覆盖默认值。示例:
Belisarius gave the basic method. I shall introduce an advanced method, because you seem eager to learn.
First let me say that I saw what I believed were simplifications to your code, and I made them, hopefully not in error.
I will use this sample data in illustrations below:
Goals
Since the main function used is
Grid
it makes sense to allow passing options to it.You have a series of options that define your table. I want to be able to conveniently change these.
I want the possibility of custom options not understood by
Grid
.Implementation
Goal #1
An argument pattern
opts:OptionsPattern[]
is added, which matches any sequence ofOption -> Setting
arguments, and names itopts
. (See: OptionsPattern for more.) Then,opts
is inserted into the basic function before the other options forGrid
. This allows any explicitly given options to override the defaults, or new ones to be given.Examples:
Goal #2
The options that define your tabular format can be separated from the function body. This will allow them to be conveniently changed or referenced. I start by clearing the previous definition with
ClearAll
. Then I set defaultOptions
forcustomTabular
:Now the function proper. Here
Options@customTabular
gets the rules given above.Now you can easily change the defaults with
SetOptions
. Example:Goal #3
Now I want to add an option that is not passed to
Grid
. I choose"Rotation"
to change the text rotation of the title row.Again I clear the prior definition and the default options. Notice the inclusion of
"Rotation" -> 90 Degree
in the list.Now I need a way to use this new option, and I need a way to keep this option from being sent to
Grid
:I access the option with
OptionValue
which will give the default if none is explicitly given.I pass only valid
Grid
options by usingFilterRules
.I first join any explicit options to the front of the
Options@customTabular
list, again to override defaults.Example: