如何使用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 按值對本機儲存格著色?在腳本索引中未找到「色標」。