從 JSL 腳本建立時線條變得更平滑。有人能幫我找出我在這裡做錯了什麼嗎?
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(Y))),
Elements(Line(X, Y, Legend(3), Connection("Curve")), Points(X, Y, Legend(4)))
)
我的線變得更加平滑,我希望它能夠透過曲線連接觸及所有點。我從 JMP 控制台創建了圖表,它運行良好,我什至從會話腳本中複製了 JSL,但事實證明,每當我通過 JSL 運行它時,它都會給我一個更流暢的。
我還有一個問題——平滑器在連續的數字列上繪製。我雖然可能將其更改為名義上的可能會產生一些影響,但它根本沒有被創建(沒有線也沒有平滑器)。線在名目類型的數字列上不起作用嗎?
自動化和腳本基礎資料分析與建模數據探索與視覺化回覆:透過 JSL 腳本創建時線條變得更平滑。您使用的是曲線連接而不是線,因此可以使效果更平滑。此外,如果 X 軸值有許多相同值,則可能無法連接所有點,除非您啟用行順序。
無行序

按行順序排列(我首先按重量對資料進行排序)

回覆:透過 JSL 腳本創建時線條變得更平滑。
這是我使用程式碼實現的 - 。


但是當我手動添加一行時

接下來-我將連接改為曲線



我實現了我的願望。一條曲線觸及我的所有點。
那麼我如何透過我的程式碼實現這一點?
回覆:透過 JSL 腳本創建時線條變得更平滑。對於某些列選擇來說,平滑器(帶點)是預設設置,這可能是 JMP 將其用於您的圖表的原因。如果從更平滑的版本獲取 JMP 創建的腳本,它是什麼樣子的?
對我來說這似乎還可以。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(7),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([100, 89, 60, 50, 40, 20, 10]))
);
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:Column 1), Y(:Column 2)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(6), Connection("Curve")))
);

回覆:透過 JSL 腳本創建時線條變得更平滑。這對我不起作用。
我又試了一次。
我沒有手動建立平滑器。我創建了線並在其上添加點並將其更改為曲線。複製腳本(與描述中的相同)。但同樣的腳本創建出來的不是線,而是更平滑的線。
Q:當您執行腳本時,您在控制面板左側的點和線上看到什麼?還是點和平滑器?對我來說,運行我的 Line 腳本時我看到了點數並且更加流暢。
您能否嘗試以曲折的形式在程式碼中添加更多點,然後運行腳本?
回覆:透過 JSL 腳本創建時線條變得更平滑。您正在使用哪個版本的 JMP?我正在運行 18.1.2。你嘗試運行我的腳本嗎?您能提供您的數據表嗎?
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(10),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([100, 80, 90, 60, 70, 40, 30, 35, 20, 10]))
);
gb = dt << Graph Builder(
Variables(X(:Column 1), Y(:Column 2)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(6), Connection("Curve")))
);

回覆:透過 JSL 腳本創建時線條變得更平滑。我的 JMP 版本是

我已重命名這些列,並且還刪除了 X 和 Y 以外的其他列。檢查這是否適合您。
回覆:透過 JSL 腳本創建時線條變得更平滑。看起來還好嗎?

Names Default To Here(1);
dt = Open("$DOWNLOADS/data_jmp.jmp");
gb = dt << Graph Builder(
Variables(X(:X), Y(:Y)),
Elements(Line(X, Y, Legend(5), Connection("Curve")), Points(X, Y, Legend(6)))
);回覆:透過 JSL 腳本創建時線條變得更平滑。是的,對我個人來說,同樣的方法有效,為什麼它不能從循環中工作:(。怎麼了 。您能檢查一下這個腳本嗎?
createDashboard = Function({dtMaxF, dtMaxR, normMeanColsF, normMeanColsR, direction},
New Window(direction || " Dashboard",
Tab Box(
"Maximum Values",
V List Box(
For(i = 1, i <= N Items(normalizedColumns), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normalizedColumns[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
)
),
"Normalized Average Values",
V List Box(
For(i = 1, i <= N Items(normMeanColsF), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normMeanColsF[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
),
For(i = 1, i <= N Items(normMeanColsR), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normMeanColsR[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
)
)
)
)
);
createDashboard(
dtMaxForward, dtMaxReverse, normalizedMeanColumns, normalizedMeanColumns, "Analysis"
);回覆:透過 JSL 腳本創建時線條變得更平滑。函數中 dtMaxF、dtMaxR 用於什麼?該函數的 normalizedColumns 來自哪裡?
回覆:透過 JSL 腳本創建時線條變得更平滑。忽略dtMaxF、dtMaxR(我將從程式碼中刪除它們)。我附上了完整的腳本供你分析
回覆:透過 JSL 腳本創建時線條變得更平滑。從非常小的事情開始。如果您的表格建立正常,您可以開始編寫單一圖表腳本。然後擴展到可能來自不同表的幾個不同的圖表。繪圖時缺少表格引用,公式可能無法如預期運作( 使用 Eval Insert、Eval Expr、Parse 和 Substitute 將一個表達式插入另一個表達式)。
回覆:透過 JSL 腳本創建時線條變得更平滑。好的,讓我試試。嗯,到目前為止所有公式都有效,但讓我再檢查一下