Anylogic时间着色图相关操作及用法

目录

时间着色图

创建时间颜色图表的步骤

添加数据项

移除数据项

属性(Properties)

常规(General)

数据(Data)

颜色映射(Color mapping)

数据更新(Data update)

外观(Appearance)

位置和大小(Position and size)

图例(Legend)

图表区域(Chart area)

高级(Advanced)

定义颜色映射(Defining color mappings)

如何定义颜色映射

如何重新排序颜色映射

如何移除颜色映射

功能(Functions)

数据项(Data items)

选择数据项(Selecting data items)

手动更新图表数据(Updating chart data manually)

位置(Location)

大小(Size)

可见性(Visibility)

将图表数据复制到剪贴板(Copying chart data to clipboard)

案例:


时间着色图

参考官方文档:Time color chart | AnyLogic Help

时间颜色图表通过不同颜色的水平条纹(颜色取决于数据值)来展示多个数据集在最近时间内的趋势。时间轴显示指定时间窗口内的数据。它始终是水平的,并且指向右侧。每次图表更新(无论是自动还是手动)都会评估定义在数据项上的布尔表达式。如果某个条件评估为真,则条纹的颜色将设置为该条件定义的颜色,否则将检查下一个条件。

这种图表可以用来可视化一个对象(离散)状态随时间的变化,例如忙碌/空闲、旅行/装载/卸载/停放/维护等。

创建时间颜色图表的步骤

  1. 从分析面板(Analysis palette)中拖拽时间颜色图表(Time Color Chart)元素到图形编辑器。

  2. 在图表属性的数据(Data)部分,添加并配置数据项。

  3. 首先,选择数据项的数据来源 —— (Value)或数据集(Data set)。

    • 如果你想展示一个变量或参数随时间的变化,选择选项,并在字段中输入这个变量或参数的名称。此外,你可以在这里输入任何你想要表达的表达式。这个表达式将使用定义的循环时间进行评估,计算结果将被添加到图表上。
    • 否则,如果你想展示某个数据集中收集的值,选择数据集选项,并在下面的数据集字段中输入数据集的名称。
  4. 标题(Title)框中指定每个数据项的标题。这段文本将在图表图例中显示。

  5. 打开图表属性的颜色映射(Color mapping)部分并创建颜色映射。

  6. 打开图表属性的外观(Appearance)部分。在时间轴格式(Time axis format)字段中,你可以选择时间轴标签的格式:你是否希望显示模型时间单位(0, 10, 20, ...)或模型日期(例如 2015年1月21日,下午11:00:48,2015年1月22日,凌晨01:00:12,...)。所有可能的日期和时间标签格式在这里有描述。

所有可能的日期和时间标签格式在图表网格和标签(Chart grid and labels)中有描述。

添加数据项

默认情况下,一个新的时间颜色图表已经有一个数据项。如果你想添加另一个,请按照以下步骤操作:

  1. 在图形编辑器或项目(Projects)视图中选择时间颜色图表。
  2. 转到属性视图的数据部分。
  3. 点击+按钮。 上面将出现一个新的属性部分,定义了一个更多数据项的设置。

移除数据项

  1. 在图形编辑器或项目视图中选择时间颜色图表。
  2. 转到属性视图的数据部分。
  3. 选择你想要从时间颜色图表中移除的数据项的属性部分。
  4. 点击下面所有部分的×按钮。

属性(Properties)

常规(General)

  • 名称(Name)— 图表的名称。名称用于从代码中识别和访问图表。
  • 忽略(Ignore)— 如果选中,图表将从模型中排除。
  • 在上层代理上可见(Visible on upper agent)— 如果选中,图表也将在该代理所在的上层代理上可见。
  • 时间窗口(Time window)— 图表显示的时间范围。在高级属性部分,你可以找到相关选项,时间窗口移动(Time window moves)。在那里,你可以选择图表的时间窗口是否根据当前模型时间(连续)移动,或者它只在图表上添加新数据点时移动(数据可用时)。

数据(Data)

  • 这个按钮打开一个新的属性部分,允许你配置你想要在图表上可视化的数据项。

标题(Title)— 此数据项的标题,将在图表图例中显示。

(Value)— [如果上面选择了选项,则可见] 将评估以获取要添加到图表上的新值的表达式。

数据集(Data set)— [如果上面选择了数据集选项,则可见] 收集你想要在图表上显示的值的数据集的名称。

要从图表中移除数据项,请点击数据项属性部分右侧的×按钮。使用箭头↑ 和↓ 来安排数据项部分的顺序。

颜色映射(Color mapping)

(Value)— 使用右侧的控件定义条件。你通过选择比较运算符(>, , <, , =)并在右侧字段中提供代码表达式来指定条件。这就是你如何组成条件,例如:值 100。

颜色(Color)— 当指定条件评估为真时,图表的数据条将被涂画的颜色。

要添加新的属性部分,允许你配置定义为条件-颜色对的颜色映射,请单击+按钮。

要复制颜色映射,选择它并单击颜色映射属性部分下面的”复制“按钮。要从图表中移除颜色映射,请选择它并单击 ×按钮。使用箭头 ↑和 ↓ 来安排颜色映射的顺序。

条件是通过将数据属性部分中指定的数据项的当前值与评估表达式的结果进行比较来检查的。如果条件评估为真,当前图表的数据条将被涂画为与此条件相对应的颜色

如果指定了多个条件,它们将按照从上到下的顺序进行检查。第一次成功的验证(即,当指定条件评估为真时)将确定图表的数据条将被涂画的颜色。

表达式仅在模型开始时和模型运行期间评估一次,并且在每次评估中返回相同的固定值。

默认颜色(Default color)— 当未满足任何指定条件时,图表的数据条将被涂画的颜色。

数据更新(Data update)

不要自动更新数据(Do not update data automatically)— 如果选中,图表不会自动用新数据样本更新。

自动更新数据(Update data automatically)— 如果选中,新数据样本将自动添加,使用指定的循环时间(Recurrence time)。此外,你可以在这里定义是否要使用模型时间(Use model time)或使用日历日期(Use calendar dates)。根据此选择,你可以使用首次更新时间(First update time)或更新日期(Update date)属性指定何时开始更新。

显示最多...最新样本(Display up to ... latest samples,仅适用于“值”数据项)— 将为每个选择了选项的数据项显示的最大最新值的数量。

外观(Appearance)

条形相对宽度(Bars relative width)— 滑块允许调整条纹的厚度(100% — 最大,50% — 一半等)。

水平轴标签(Horizontal axis labels)— 控件指定水平轴标签相对于图表的位置(下方上方)。如果不想显示标签,请选择

时间轴格式(Time axis format)— 在这里,你可以选择时间轴的格式:你是否希望显示模型时间单位(0, 10, 20, ...)或模型日期(例如 2009年1月21日,下午11:00:48,2009年1月22日,凌晨01:00:29,...)。所有可能的时间轴格式在图表网格和标签中有描述。

标签颜色(Labels color)— 控件指定图表标签的颜色。

背景颜色(Background color)— 图表的背景颜色。

边框颜色(Border color)— 用于绘制图表边框的颜色。

网格颜色(Grid color)— 控件指定图表网格的颜色。如果不想显示网格,请选择无填充

位置和大小(Position and size)

级别(Level)— 此图表所属的级别。

X — 图表左上角的X坐标。

Y — 图表左上角的Y坐标。

宽度(Width)— 图表形状的宽度(以像素为单位)。

高度(Height)— 图表形状的高度(以像素为单位)。

图例(Legend)

  • 显示图例(Show legend)— 如果选中,将显示图表图例。你可以使用位置(Position)按钮组控制图例相对于图表的位置。图例区域的大小可以通过宽度高度控制定义(取决于图例的位置)。文本颜色(Text color)也可以调整。

图表区域(Chart area)

这部分定义了图表区域的视觉属性。

  • X 偏移(X Offset)— 图表区域相对于为图表及其所有伴随元素分配的整个区域的 x 偏移量。
  • Y 偏移(Y Offset)— 图表区域相对于为图表及其所有伴随元素分配的整个区域的 y 偏移量。
  • 宽度(Width)— 图表区域的宽度(以像素为单位)。
  • 高度(Height)— 图表区域的高度(以像素为单位)。
  • 背景颜色(Background color)— 图表区域的背景颜色。
  • 边框颜色(Border color)— 用于绘制图表区域边框的颜色。

高级(Advanced)

  • 可见(Visible)— 图表的可见性。当指定的表达式评估为真时,图表可见,否则不可见。
  • 复制(Replication)— 图表的复制因子。这里你指定将创建图表的副本数量。如果留空此字段,将只创建一个图表。
  • 选择更改时(On selection change)— 用户选择特定数据项时执行的代码。此代码在用户通过点击图表图例中的项或通过函数 selectItem() 程序性更改选择时执行。这里可以使用两个变量:
    • selectedIndices — 当前选中数据项的索引数组。
    • programmatically — 定义项目是否通过程序选择(true),或者不是(false)。
  • 时间窗口移动(Time window moves)— 在这里你可以选择图表的时间窗口是否根据当前模型时间(连续)移动,或者它只在图表上添加新数据点时移动(数据可用时)。
  • 显示名称(Show name)— 如果选中,图表名称将在演示图表上显示。
  • 记录到数据库(Log to database)— 如果选中,图表在模拟期间收集的数据将保存在模型执行日志的 datasets_log 中(如果在模型的数据库属性中启用了日志记录)。

定义颜色映射(Defining color mappings)

你还应该定义数据项值和颜色的对应关系。

如何定义颜色映射
  1. 导航到图表属性的颜色映射部分。
  2. 点击 +按钮。上面将出现一个新的属性部分,定义了新颜色映射的设置。
  3. 配置颜色映射:
    • 选择比较运算符(><= 或 )以比较数据项的与评估表达式的结果。
    • 在右侧的代码字段中,提供表达式。
    • 使用颜色控件设置映射的颜色。当此颜色映射中定义的条件评估为真时,将使用此颜色绘制当前图表的数据条。

如果为图表指定了多个颜色映射,则按从上到下的顺序依次检查它们的条件。第一次成功的验证(即,当指定条件评估为真时)将确定图表的数据条将被涂画的颜色。因此,通过更改颜色映射的顺序,你将影响图表的外观。

如何重新排序颜色映射
  1. 导航到图表属性的颜色映射部分。
  2. 选择要移动的颜色映射的属性部分,并使用下面的箭头 ↓↑ 和 ↓ 向上或向下移动它。
如何移除颜色映射
  1. 在图表属性的颜色映射部分,选择要移除的颜色映射的属性部分。
  2. 点击所有部分下面的 × 按钮。

功能(Functions)

数据项(Data items)

功能描述
void addDataSet(DataSet ds)添加一个数据集到图表,默认标题为“数据集”。
ds — 要添加的数据集
void addDataSet(DataSet ds, String title)添加一个带有指定标题的数据集。
ds — 要添加的数据集
title — 数据集的标题
int getCount()返回当前图表显示的图表项(数据项或数据集)的数量。
ChartItem get(int i)返回给定索引的图表项(DataItem, DataSet 等)。
String getTitle(int i)返回给定索引的图表项(DataItem, DataSet 等)的标题。
void remove(int i)从图表中移除给定索引的项(DataItem, DataSet 等)。
int remove(ChartItem ci)从图表中移除给定项(DataItem, DataSet)。
void removeAll()从图表中移除所有项。

选择数据项(Selecting data items)

功能描述
void selectItem(int itemIndex, boolean selected)根据 selected 值选择/取消选择给定索引的图表项。
void setSelectedItemIndices(int[] selectedIndices)只选择具有给定索引的图表项。
selectedIndices — 要选中的图表项索引数组(其他图表项将被取消选择),可以为 null — 这将清除选择
int[] getSelectedItemIndices()返回当前选中的图表项(数据项或数据集)的数量。
手动更新图表数据(Updating chart data manually)
功能描述
void updateData()更新图表显示的所有数据项。

位置(Location)

功能描述
double getX()返回图表的 X 坐标(即其左上角的 X 坐标)。
double getY()返回图表的 Y 坐标(即其左上角的 Y 坐标)。
void setX(double x)设置图表的 X 坐标。
x — X 坐标的新值
void setY(double y)设置图表的 Y 坐标。
y — Y 坐标的新值
void setPos(double x, double y)设置图表形状的新坐标。
x — x 坐标的新值
y — y 坐标的新值

大小(Size)

功能描述
double getWidth()返回图表形状的宽度。
double getHeight()返回图表形状的高度。
void setWidth(double w)设置图表形状的新宽度。
w — 图表宽度的新值
void setHeight(double h)设置图表形状的新高度。
h — 图表高度的新值

可见性(Visibility)

功能描述
boolean isVisible()检查图表的可见性。如果图表可见,返回 true,否则返回 false。
void setVisible(boolean v)设置图表的可见性。
v — 可见性:如果为 true — 图表设置为可见,如果为 false — 不可见。

将图表数据复制到剪贴板(Copying chart data to clipboard)

功能描述
String copyToClipboard()将所有图表数据复制到系统剪贴板,形式为需要时进行线性插值的制表符分隔表。表格限制为1000个值。返回所有图表数据的文本表示。

案例:

您只需使用图表中的数据集并设置颜色映射的值。在我的例子中,它是一个简单的1和0二进制选项。

您可以使用块中的操作代码来记录机器的状态。对于服务块,您可以在此处进行设置

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值