图表

每张图表都带的那条工具栏、每个按钮做什么、刻度、统计和参考线面板、分离出去的图表窗口、图表在应用里出现在哪些地方,以及它们背后那唯一一个绘图引擎。

以 Markdown 查看

应用里的每一张图表,都由同一个引擎(ECharts)通过同一个图表视图画出来,不管是什么把它放上屏幕的:仪表画面上的折线图柱状图饼图组件,单元面板的通道卡片,Process 页面上一次运行的实时图表,历史里一次已记录运行的数据记录图表,一个配方或者一个流程里的配方曲线预览,一次判定的判据预览,以及下面那两个分离出去的窗口。它们之间不同的是配置从哪里来,绝不是画法:数据里的空缺永远是线上的一个洞,绝不是一座桥,而图表写出的每一个数字和每一个时刻,都跟着工作站自己的语言与格式。PDF 报告画的是同一幅图形,只是没有本页上的任何工具。

工具栏

一张图表在它的绘图区上方带着一排按钮:到处都是同一条工具栏,只是逐张图表被告知要画哪些按钮。在一个仪表画面组件上,那份名单就是它属性里的工具栏分区(仪表画面编辑器);没有人可问的界面(一次已记录的运行、一份配方预览)则提供一张时间图表做得到的每一个工具。一个工具都没有时,根本不画工具栏。

按钮(它的提示) 作用 在哪些地方提供 在画面上是否默认打开
在另一个窗口中打开 在它自己的一个窗口里打开同一张图表(见下)。只在图表有自己的地址时提供:历史里一次已记录的运行、一份配方曲线。放在画面上的图表绝不提供。 已记录的运行、配方曲线 不提供
框选一块区域放大 启用框选放大:下一次在绘图区上拖动,框住它画出来的那个框,而不是平移。启用期间按钮一直亮着。 时间图表
还原缩放 把窗口退回到所绘制的全部。 时间图表
手动设定坐标范围 打开下面那块刻度面板。只要还钉着任何东西它就亮着,于是一把不再跟着数据走的刻度,不用打开面板也说得出来。 时间图表
所显示窗口的最小值、平均值和最大值 打开下面那块统计面板。只在面板打开期间测量。 时间图表
画一条参考线 打开下面那块参考线面板。只要画着任何一条线它就亮着。 时间图表
保存 PNG 把图形按屏幕分辨率的两倍下载成一个 PNG,衬着主题的背景色,文件按图表的标题命名(没有标题时叫“chart”)。 全部图表
复制 PNG 把同一个 PNG 放到剪贴板上。拒绝写剪贴板的浏览器什么也不做,并且不出声。 全部图表
显示或隐藏系列 打开一份所绘制系列的列表,各带一个勾选框,直接从图表上读出来;取消勾选,就在这幅画面开着的这段时间里隐藏那个系列。什么也没画时写“没有系列”。 时间图表
数据提示已关闭 / 数据提示已打开 打开或者关闭悬停时的读数。它一开始是关的,好让一只手扫过绘图区时,绝不会拿一个谁也没要的方框把它盖住;这个选择在本次会话内有效。 时间图表
全屏 通过浏览器的元素全屏,让这一张图表铺满整个窗口;再按一次,或者按 Esc,就把窗口交还回去。在一幅已经全屏的仪表画面上,它把这张图表放大,而 Esc 会先离开图表,再离开仪表画面。 全部图表

一张柱状图或者饼图只做得到那一对 PNG 和全屏:一次读的是此刻的比较,没有可以走的坐标轴,没有可以测量的窗口,也没有可以往上放线的地方。同一时间只有一块面板打开,在别处按一下就把它关掉。

缩放和平移本身是图表的导航设置(固定窗口,滚轮和拖动,或者滚轮加拖动再加一条画在绘图区下面、标出窗口在整段记录里位置的导航条);一张带上下排列绘图区的图表会让每个绘图区一起动,因为它们共用一条时间轴。手势绝不碰所存下的东西:图表画的是从可见范围到得了画布的那部分,所以放大之后看到的总是真实数据,而角上的一个标记可以说明这幅画面是测量本身,还是它的一次降采样(折线图)。

手动设定坐标范围

这块面板钉住时间轴的一段时段和数值轴的一段范围,两侧各自独立。每个字段在你离开它时提交;空着的字段表示那一侧仍然自由,照旧自行调整。

字段 它接受什么
时段 / 时段(从现在算起的秒数)/ 采样点 时间轴的两端,用这条轴画出来时所用的说法来问:时钟轴上是两个日期时间挑选器,相对时间轴上是两个秒数,采样点轴上是两个采样点计数。
数值轴,最小值和最大值 图表自己那条数值轴的两端。在带上下排列绘图区的图表上,这只是最上面那个绘图区的尺子;时段则让每个绘图区一起动。
自动(每条轴各一个) 把那条轴交还给图表自己搭出来的窗口:滚动窗口重新滚动,写定了固定两端的轴回到那两端,没写定两端的轴回到它自由的自行调整。那条轴上什么也没钉住时它变灰。
载入所显示的窗口 用屏幕上实际显示的那个窗口填满全部四个字段,把你做过的每一次缩放和平移都算进去,于是把你正在看的东西钉住,只要按一下。

这次钉住属于这条连接上的这张图表:它绝不随画面一起保存,另一个浏览器看同一张图表时有它自己的一套,关掉这幅画面就把它释放掉。一个一个采样点也没装住的钉住窗口照样画出来,并在绘图区下面说明:“在你固定的刻度范围内没有测到任何数据。”

最小值、平均值和最大值

这块面板是一张表,每个所绘制的系列一行(画面作者关掉的系列不在屏幕上,也不在这张表里;用图例隐藏起来的仍然在),按它的墨色上色,写出所显示窗口内那些采样点的最小值平均值最大值,按工作站书写数字的方式书写。表格上面那一行说明这是哪个窗口:“所显示的时间窗口,一直到最新的采样点。”,或者在你往回走进历史时写“所显示的时间窗口。最新的采样点在它的右边界之外。”一行的提示写出这个窗口的采样点里有多少个是读数;空缺算作这个窗口装住的一个采样点,在那三个数字里则什么也不算,所以绝不会跨过一个洞去取平均。什么也读不到的一行写出空缺,并说明这是哪一种沉默:“在所显示的窗口里,这个系列没有任何采样点。”或者“在所显示的窗口里,这个系列的每一个采样点都是空缺。”面板打开期间,这些数字跟着实时数据走,而且是对着采样点本身测量的,绝不是对着降采样之后的图形。

参考线

一条参考线,是横贯绘图区画在某个数值上的一条线,或者纵贯绘图区画在某个时刻上的一条线,带着说明它为什么在那里的字,以及一种把它和下一条分开的颜色。面板列出已经画了什么,每一条带着自己的 ✕,还有全部删除;列表下面有一份小小的表单,用来画下一条:

字段 它接受什么
哪条坐标轴 在某个数值上,或者用时间轴自己的说法:在某个时刻(一个日期时间挑选器)、在某一秒(从现在算起)或者在某个采样点上。换了坐标轴就把位置清空,因为一个数值和一个时刻不是同一个数。
线画在哪里 在那条轴上的位置。在它填好之前,画出这条线一直变灰。
线上写什么 画在线上的可选文字。
线的颜色 一个颜色挑选器;线一开始是琥珀色的。
画出这条线 把它画出来。位置和文字为下一条线清空;坐标轴和颜色留着。

这些线只属于你眼前这张图表,别的什么也不属于:它们不保存,画面的作者永远不会被告知,另一条连接看不到它们,关掉这幅画面它们也就没了。一条必须比这次观看活得更久的标注,属于一次运行,由那次运行自己的文件记录(运行记录与备注)。

分离出去的图表窗口

在另一个窗口中打开在一个新窗口里打开这张图表自己的路由:在工作站上是应用的一个真窗口,在远程浏览器里是一个新标签页。再按一次,是把已有的那个窗口调到前面来,而不是再开第二个。存在两个路由:

路由 它显示什么 从哪里打开
/chart/run/{id} 一次已记录运行的数据记录图表,从运行记录文件重新读出来:它的各个系列、标注、备注,以及它那个流程当前所配置的合格区间。id 解析不到任何东西时写“未找到运行记录”。 历史里一次运行的图表
/chart/recipe/{id} 一份配方的阶跃、斜坡和保持曲线,从保存下来的模型重新搭出来。id 解析不到任何东西时写“未找到配方”。 配方编辑器,以及一个流程的配方预览

这个窗口不带外壳绘制:没有导航栏,没有标题栏,没有状态栏,只有一条写着图表标题和 X 轴与主图表同步(“让 X 轴的缩放和平移跟随主图表”,默认打开)的顶栏,下面是带着完整工具栏的图表。同步打开期间,这个窗口加入一个按它的路由做键的通道,在时间轴上跟着主图表缩放和平移;关掉之后,它自己单独导航。每个路由各自要求什么样的身份才配看它画的东西:运行记录的窗口要的是查看历史,也就是放行它所来自的那个已记录运行浏览界面的同一项权限;配方的窗口要的是 Process 页面自己的那条规矩,Process 那四个开关中的任何一个或者查看历史都能打开它。没有自己这个路由所要之物的角色,或者在窗口开着期间被降权的角色,都不能凭地址读到那张图表。这个窗口是只读的:备注和标注在历史里编辑,不在这里。

这些工具不做什么

工具栏上的任何东西都不会改动这幅画面:隐藏的系列、一次钉住、一条线和数据提示的开关状态,全都是这条连接上这张图表的状态,明天重新打开这幅画面,它是干净的。工具栏上的任何东西都伸不到一份报告里:PDF 画的是它自己的生成器搭出来的那幅图形,没有钉住、没有参考线、也没有工具。工具栏不导出任何数据,只出图:一次运行的那些数字,是从历史的各种导出里离开的。而且工具栏绝不提供一个这幅图形做不到的工具:一次按类别的比较永远得不到缩放、刻度、统计或者参考线,而画面上的一张图表永远得不到属于自己的窗口。