使用 JSL 更改 TableBox 中的字体颜色是否可以更改表格框中各个单元格的字体颜色?
我发现一篇较旧的文章说,如果没有条件格式,这是不可能的: https://community.jmp.com/t5/Discussions/Is-there-a-way-to-send-a-font-color-to-a-single-value-in-a/td-p/8643
并且条件格式不适用于该项目。 我希望自旧帖子发布以来已经添加了此功能。
本质上,我所拥有的是一张图表,其下方有相应的表格。 我希望每行的字体颜色与图表上的线条颜色相对应。
我尝试使用“SetSelectedRowColor”设置表格框的行背景颜色,但它很难看且难以辨认。 如果可能的话,改变字体颜色会更好。
回复:使用 JSL 更改 TableBox 中的字体颜色据我所知,对于表格框,唯一支持的突出显示方法是突出显示整行。
回复:使用 JSL 更改 TableBox 中的字体颜色您好,有没有办法给选定的单元格着色? 我选择了数百个单元格,我想提供一种颜色来脱颖而出。
谢谢
山姆
回复:使用 JSL 更改 TableBox 中的字体颜色您可以设置表格框中文本的颜色。 你必须使用 col 框。 这是一个例子:
// Col Box Examples
nw = New Window( "Mountains",
tb = Table Box(
sb = String Col Box( "Mountain",
{"K2", "Delphi", "Kilimanjaro", "Grand Teton"}),
// Text boxes of different colors
cc = col box("Name",
tb1 = textbox("Hello"),
tb2 = textbox("World"),
tb3 = textbox("Fubar"),
tb4 = textbox("Geronimo")
),
),
);
tb1 << font color("Red") << set font style("Bold");
tb2 << font color("Blue");
tb3 << font color("Green");
tb4 << font color("Orange") << set font style("Bold");
回复:使用 JSL 更改 TableBox 中的字体颜色哈哈,“错误”有点苛刻——这个理由很有道理,谢谢你的信息:)
回复:使用 JSL 更改 TableBox 中的字体颜色混乱是我的错。 在图形生成器之外,JMP 在需要两种颜色时将跳过绿色,以避免常见的红/绿颜色不足。 然而,Graph Builder 更具动态性,需要能够在不更改前两种颜色的情况下从两种颜色变为三种颜色,因此它从一开始就重新排列它们(每组 3 个颜色围绕色轮旋转)。这种情况仅发生在标有“JMP”的颜色主题中,因此您可以通过使用不同的颜色主题来避免双重排序。
回复:使用 JSL 更改 TableBox 中的字体颜色非常感谢您花时间记录这一点,亚当。 我会将其提请研发部门注意。
回复:使用 JSL 更改 TableBox 中的字体颜色再次感谢,伊恩,这对我帮助很大。 我已经制定了一个很好的作战计划来让这项工作现在发挥作用。
虽然它不再相关,但要详细说明#2——当值颜色应用于列时,列中出现的颜色的顺序与在图形生成器中使用主题时不同。
在此图像中,“主题颜色”列是我填充 1 到 20 的列,然后点击“值颜色”->“按值设置颜色”->“JMP Light”。
“GB 颜色”列是我手动创建的列,用于显示将 JMP Light 应用于图形时出现在图形生成器中的顺序颜色顺序。

第 12 个条目之后,颜色同步,但在此之前它们与 JMP Light 主题内的顺序不对应。
不再重要了,但我仍然发现这是相当奇怪的行为。 您知道为什么 Graph Builder 会打乱颜色主题中的前 12 种颜色吗?
再次感谢您的所有时间和帮助,
-亚当
回复:使用 JSL 更改 TableBox 中的字体颜色对于第 1 部分,您可以执行以下操作:
New Table( "Untitled 114",
Add Rows( 10 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
)
);
Wait(2);
:Column 1 << set Property( "Value Colors", Color Theme( "White to Blue" ) );
:Column 1 << colorCellByValue;
Wait(2);
:Column 1 << set Property( "Value Colors", Color Theme( "Light" ) );
对于第 2 部分,您是否能够共享一个只有几行的表和一个保存的您想要的图形生成器脚本?
回复:使用 JSL 更改 TableBox 中的字体颜色嗨伊恩,
谢谢您的帮助。 为了节省时间,我正在考虑简单地在数据表(“ID”)的开头添加一个新列,然后将其转换为表格框,用 i++ 填充它,并使用值颜色和默认颜色主题(JMP Light)来指定背景颜色。
这样我们就可以轻松生成颜色,并且实际文本仍然清晰可辨。 这并不理想,但应该能够表达要点。
不过,我遇到了两个问题:
- 通过 JSL 为列分配值颜色
- 我尝试通过表脚本窃取它:
New Table( "Untitled 114",
Add Rows( 10 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Property(
"Value Colors",
{1 = 35, 2 = 36, 3 = 37, 4 = 38, 5 = 39, 6 = 40, 7 = 41, 8 = 42, 9 = 43,
10 = 44}
),
Color Cell by Value,
Set Selected,
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
)
)我真正想做的是使用 SetProperty("Value Colors", "JMP Light") 而不是表脚本中的列表。 有没有办法做到这一点? - 当图形生成器接收时< ,调色板本身发生变化,但颜色的顺序不同IE, JMP 默认(和 jmp 灯)变为红色->绿色->蓝色->橙色->等,而图形生成器变为蓝色->红色->绿色->紫色->等
- 本质上,我需要图形生成器用于我的子表的颜色列表。
- 另一种方法是在数据表中分配颜色,然后让图形生成器使用这些颜色而不是调色板,但数据会根据用户交互进行子集化并拆分为多个图形/表格 - 因此,虽然可以这样做,但它只需以正确的顺序获取图形生成器使用的默认颜色列表就会容易得多。
再次感谢!
回复:使用 JSL 更改 TableBox 中的字体颜色看起来“<< textColor()”仍然对“StringColBox()”的内容全局起作用。
我想你可以用“TextBox()”构建你自己的密钥:
NewWindow("Legend",
LineUpBox(NCol(2),
TextBox("Some Text: "), tb1 = TextBox("Males", << fontColor("Red")),
TextBox("Some Text: "), tb2 = TextBox("Females", << fontColor("Blue"))
)
);