如何使用JSL按值对本地单元格着色?例如,在“Big class.jMP”的“权重”列中,取第1-10行的数据,并按数据高度制作渐变颜色,如下所示图像.因此可以启动和停止任何想要的颜色。

大规模定制回复:如何使用 JSL 按值对本地单元格着色?用这个愚蠢的方法来选择我想要的色号。

回复:如何使用 JSL 按值对本地单元格着色?谢谢吉姆!
直接从单元格的颜色中获得这样的颜色数是很困难的:
“-2768895、-5530606、-6582759、-8094941、-9147350、-10462158、-11514567、-12237762、
-13344414,-14575206"回复:如何使用 JSL 按值对本地单元格着色?附件是添加了公式列的数据表,从高度列中检索单元格颜色。通过右键单击每个单元格并选择单元格颜色来设置颜色。该公式将无法检索使用“颜色”或“按列标记”、“值颜色”或“渐变颜色”设置的颜色

回复:如何使用 JSL 按值对本地单元格着色?谢谢吉姆!
我还是不知道如何使用这个公式。 运行不正确。
回复:如何使用 JSL 按值对本地单元格着色?很棒的功能,吉姆! 感谢分享。
这是宣传您的 JMP 愿望清单创意的好地方: << 获取单元格颜色
将其内置到 JMP 中,以便任何偶然发现此讨论的人都可以对其进行投票。
谢谢,
〜约翰
回复:如何使用 JSL 按值对本地单元格着色?如果单元格已使用 Color Cells() 着色,则以下公式有效。但是单元格颜色已由值颜色设置,或由 Column() 颜色和标记设置。所以这不是一个非常合适的公式
// Define formula to retrieve cell colors
If( Row() == 1,
get_cell_color = Function( {col, r},
s = col << get script;
//Locate argument "Color Cells" in column script
For( i = 1, i <= N Arg( s ), i++,
If( Head Name( Arg( s, i ) ) == "Color Cells",
p = i;
Break();
);
);
//Identify the sublist that contains the color of row r
if( p==i,
L = Arg( Arg( s, p ), 1 );
For( i = 1, N Items( L ), i++,
If( N Row( Loc( L[i][2], r ) ) == 1,
color = L[i][1];
Break();
)
);
color,
color=.
)
)
);
cellcolor = get_cell_color( Column( :Height ), Row() );回复:如何使用 JSL 按值对本地单元格着色?谢谢吉姆!
我有尝试该帖子的代码。但我仍然无法到达那里。

回复:如何使用 JSL 按值对本地单元格着色?您是否阅读过我在之前的回复中发布的有关如何检索单元格颜色的条目?它有一个功能可以为您提供如何访问单元格颜色。如果颜色是通过使用“颜色或按列标记”设置的,那么我知道获取颜色的唯一方法是创建一个行状态列,将当前行状态复制到新列,然后使用颜色( Row State( row#)) 检索颜色值。
回复:如何使用 JSL 按值对本地单元格着色?谢谢吉姆!
我还没学会写“函数”。
我想得到这样的颜色编号:

回复:如何使用 JSL 按值对本地单元格着色?您可以在 JSL 中轻松创建类似的模式。但在 JSL 中,您创建函数。

回复:如何使用 JSL 按值对本地单元格着色?记录每一步操作,VBA比较容易。

回复:如何使用 JSL 按值对本地单元格着色?谢谢吉姆!
你们给了我很多帮助,让我进步很快。
我曾经使用VBA,并且能够记录每一步的大部分代码。
现在用JSL,也想实现全自动操作。回复:如何使用 JSL 按值对本地单元格着色?几年前我也问过同样的问题
这里是:
您基本上必须从您感兴趣的列的提取脚本中提取它
回复:如何使用 JSL 按值对本地单元格着色?但要手动执行才能显示这一点?
另外,能否使用JSL自动获取“高度”列中每行单元格的颜色编号?

回复:如何使用 JSL 按值对本地单元格着色?感谢pmroz!
我做到了。
回复:如何使用 JSL 按值对本地单元格着色?您使用的操作系统和 JMP 版本是什么?我在 64 位 Windows 10 上使用 JMP 14。
尝试以下步骤:



如果这仍然不起作用,您需要联系 JMP 帮助台。
回复:如何使用 JSL 按值对本地单元格着色?其他版本也是如此。
回复:如何使用 JSL 按值对本地单元格着色?感谢pmroz!
奇怪,我这里还是看不到1-10条颜色线。第 11 到 40 行是白色的。

回复:如何使用 JSL 按值对本地单元格着色?下面介绍了如何仅显示第 1-10 行的颜色渐变。请注意,最小值、最大值和平均值是在整个列上计算的。你可以调整一下。
dt = open("$sample_data\Big Class.jmp");
bmin = col min(dt:height);
bmax = col max(dt:height);
bavg = col mean(dt:height);
dt:height << set property("Color Gradient", {"Light Spectral", Range( {bmin, bmax, bavg} )});
dt:height << Color Cell by Value(1);
reset_rows = 11::40;
dt:height << color cells ("White", reset_rows);

回复:如何使用 JSL 按值对本地单元格着色?你应该看到这个:

回复:如何使用 JSL 按值对本地单元格着色?感谢pmroz!
你的代码完整吗?我运行时没有看到任何结果,我不知道如何完善代码。感谢你的帮助!回复:如何使用 JSL 按值对本地单元格着色?您也可以尝试颜色渐变。
dt = open("$sample_data\Big Class.jmp");
bmin = col min(dt:height);
bmax = col max(dt:height);
bavg = col mean(dt:height);
dt:height << set property("Color Gradient", {"Light Spectral", Range( {bmin, bmax, bavg} )});
dt:height << Color Cell by Value(1);
这将为整个列着色。您可以使用第 11 行到末尾的颜色单元格来删除颜色。
回复:如何使用 JSL 按值对本地单元格着色?查看脚本指南......不仅仅是脚本索引回复:如何使用 JSL 按值对本地单元格着色?谢谢吉姆!
我搜索了索引,只看到了这个。
在哪里可以看到更完整的颜色代码?

回复:如何使用 JSL 按值对本地单元格着色?
以下脚本将为数据表中列权重的前 10 行着色。
names default to here(1);
dt=Open("$SAMPLE_DATA/big class.jmp");
// Set the gradient list of colors
colorList = {-2768895, -5530606, -6582759, -8094941, -9147350, -10462158, -11514567, -12237762,
-13344414, -14575206};
// Color first 10 rows
// find the range
weightMin= col min(if(Row()<=10,:weight,.));
weightMax= col max(if(Row()<=10,:weight,.));
weightInc= (weightMax-weightmin)/10;
// Loop across and set the colors
For(i=1,i<=10,i++,
Bin=floor((:weight[i]-weightMin)/weightInc)+1;
if(Bin>10,Bin=10);
:weight << color cells( colorList[bin],i)
);
要了解 JMP 中颜色背后的所有概念,您需要阅读《脚本指南》中有关指定颜色的文档
回复:如何使用 JSL 按值对本地单元格着色?在脚本索引中未找到“色标”。