Dt =打開(“ $ SAMPLE_DATA \世界人口統計數據。JMP”);
隱藏第一行,並刪除列名中帶有“(1000)”的前五列。
使用以下代碼生成氣泡圖。
dt = Current Data Table();
c11 = Quantile( 1, (:Crude Birth Rate << get values) ) * 1.01;
c12 = Quantile( 0, (:Crude Birth Rate << get values) ) * 0.99;
c21 = Quantile( 1, (:Crude Death Rate << get values) ) * 1.01;
c22 = Quantile( 0, (:Crude Death Rate << get values) ) * 0.99;
c31 = Quantile( 1, (:Population << get values) );
c32 = Quantile( 0, (:Population << get values) );
pa = {0.05, 0.275, 0.5, 0.725, 0.95};
xF = {};
For( c = 1, c <= 5, c++,
na = Quantile( pa[c], (:Infant Mortality Rate << get values) );
Insert Into( xF, na );
);
Bubble Plot(
X( :Crude Birth Rate ),
Y( :Crude Death Rate ),
Sizes( :Population ),
Coloring( :Infant Mortality Rate ),
ID( :Territory ),
Color Levels( xF ),
Title Position( 0, 0 ),
SendToReport(
Dispatch( {}, "1", ScaleBox, {Format( "Best", 10 ), Min( c12 ), Max( c11 ), Inc( 5 ), Minor Ticks( 1 )} ),
Dispatch( {}, "2", ScaleBox, {Format( "Best", 12 ), Min( c22 ), Max( c21 ), Inc( 5 ), Minor Ticks( 0 )} )
)
);
Wait( 0 );如何在氣泡圖中使用自定義顏色參數替換自動生成的參數?
由軟件自動生成的參數JSL代碼是
Color Levels([2.31 46.785 91.26 135.735 180.21])
如果要改為使用自己的參數,如何編寫JSL?

謝謝!
Color Levels()的參數必須為矩陣-列表參數將被忽略。 這是一個有效的示例:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/PopAgeGroup.jmp" );
cl = [100000 150000000 300000000 450000000 600000000];
obj = Bubble Plot(
X( :Name( "Portion 0-19" ) ),
Y( :Name( "Portion60+" ) ),
Sizes( :Pop ),
Coloring( :Pop ),
ID( :Country ),
Color Levels( cl )
);
感謝danschikore!
現在的重點是如何將xf更改為矩陣形式,我已經搜索了仍然找不到答案,請尋求幫助。
我試圖編寫這樣的代碼,但是沒有用。謝謝!
……<BR />Mat = Number Col Box("",xf) << get as matrix;<BR />……<BR />Color Levels( Mat ),的 JMP腳本指南很好地概述了在JSL中使用矩陣的方法。 如果已經有了列表,則可以將其轉換為矩陣:
Create a column vector from a single list:
A = Matrix( {1, 2, 3} );
[1,2,3]
您還可以創建一個空矩陣並通過串聯構建它,類似於您使用列表的方式:
cl = [];
cl = cl || 100000;
cl = cl || 150000000;
cl = cl || 300000000;
cl = cl || 450000000;
cl = cl || 600000000;
[100000 150000000 300000000 450000000 600000000]
如果提前知道矩陣的大小,則可以創建完整的矩陣並使用下標分配值:
cl = J(1,5);
cl[1] = 100000;
cl[2] = 150000000;
cl[3] = 300000000;
cl[4] = 450000000;
cl[5] = 600000000;
Show(cl);
cl = [100000 150000000 300000000 450000000 600000000];
希望有幫助!