從數據表中取消疊加圖中的數據鏈接<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我已經仔細研究了腳本指南,尋找一種方法來“打破”疊加圖中顯示的數據與其數據表之間的鏈接,但似乎無法找到如何做到這一點。原因是我想使用各種用戶指定的數據日期範圍創建多個操作。我使用數據過濾器來選擇我感興趣的日期範圍,以便生成的 OP 可以自動縮放 x 和 y 軸數據,這樣我就不必指定這些參數,因為它們在一年中會發生巨大變化。
為了簡化問題,我在下面添加了一些模擬代碼,這些代碼基本上顯示了我想要完成的任務:即,創建 2 個顯示 1-3 個月和 5-7 個月數據的 OP,並取消鏈接每個 OP與原始數據相比,這樣當從數據過濾器中選擇的數據發生變化時,OP 中顯示的數據不會與最初指定的數據發生變化。任何有關如何實現這一目標的建議將不勝感激。
清除日誌();
dt = Open( "C:\Program Files\SAS\JMP\10\Samples\Data\Time Series\Raleigh Temps.JMP" );
日期 = 1;
埃達=3;
obj = dt << 數據過濾器(
自動清除 ( 1 ),
顯示窗口 ( 0 ),
添加過濾器(
列(:名稱(“月份”)),
在哪裡(
:名稱( "月份" ) >= sdate & :名稱( "月份" ) <=
埃達特
)
),
模式(顯示(1),包含(1))
);
obj << 關閉;
疊加圖(
X(:名稱(“月份”)),
Y(:名稱(“溫度”)),
分離軸( 1 ),
連接缺失( 1 ),
連接點( 1 ),
發送至報告(
派遣(
{},
“101”,
秤盒,
{顯示主要網格( 1 ),旋轉標籤(“自動”)}
)
)
);
日期 = 5;
日期 = 7;
obj = dt << 數據過濾器(
自動清除 ( 1 ),
顯示窗口 ( 0 ),
添加過濾器(
列(:名稱(“月份”)),
在哪裡(
:名稱( "月份" ) >= sdate & :名稱( "月份" ) <=
埃達特
)
),
模式(顯示(1),包含(1))
);
obj << 關閉;
疊加圖(
X(:名稱(“月份”)),
Y(:名稱(“溫度”)),
分離軸( 1 ),
連接缺失( 1 ),
連接點( 1 ),
發送至報告(
派遣(
{},
“101”,
秤盒,
{顯示主要網格( 1 ),旋轉標籤(“自動”)}
)
)
);
回复:從數據表中取消疊加圖中的數據鏈接如果您擔心空間問題,您可能會想到圖形生成器默認顯示的控制面板,但您可以使用顯示控制面板(0) 將其關閉。
而且,如果您可以將條件編碼到列中,則可以使用 X 組和 Y 組角色來進行相當緊湊的顯示。
在下面的示例中,我創建了一個指示公司規模的列來對我的條件進行編碼。
dt =打開( “$SAMPLE_DATA\Financial.jmp” ) ;
dt <<新專欄( “公司規模” ,公式(如果( :姓名( “#emp” ) < 10000 , “小的” , “大的” ) ) ) ;
dt <<圖形生成器(
尺寸(第638章,第770章) ,
顯示控制面板( 0 ) ,
變量(
X ( :姓名( “資產(百萬美元)” ) ) ,
是( :姓名( “銷售額(百萬美元)” ) ) ,
X組( :公司規模) ,
Y組( :類型)
) ,
元素(積分( X ,是,傳奇( 1 ) ) ,更順暢( X ,是,傳奇( 2 ) ) )
) ;
回复:從數據表中取消疊加圖中的數據鏈接感謝杰夫對此的幫助。我很欣賞圖形生成器的建議。這可能不適用於我的特定情況,因為我正在處理 2 列 x 6 行的圖形顯示矩陣,並且圖形生成器開銷佔用了太多空間。然而,很高興看到這個例子,未來的圖表不會那麼大,並且擁有一些交互功能會很有幫助。
回复:從數據表中取消疊加圖中的數據鏈接在 JMP 10 中,您可以使用本地數據過濾器,在不影響原始數據表的情況下進行過濾。
我還建議使用圖形生成器而不是疊加圖。
這是一個例子:
dt =打開( “$SAMPLE_DATA\時間序列\羅利溫度.JMP” ) ;
新窗戶( 《我的窗戶》 ,
V 列錶框(
dt <<圖形生成器(
變量( X ( :姓名( “月/年” ) ) ,是( :溫度) ) ,
元素(線( X ,是,傳奇( 4 ) ,行序( 0 ) ,統計匯總( “意思是” ) ) ) ,
本地數據過濾器(
地點( { 207 ,第385章} ) ,
添加過濾器(列( :年) ,在哪裡( :年>= 1980年& :年<= 1982年) ) ,
模式(選擇( 0 ) ,展示( 1 ) ,包括( 1 ) )
)
) ;
dt <<圖形生成器(
尺寸(第570章, 518 ) ,
變量( X ( :姓名( “月/年” ) ) ,是( :溫度) ) ,
元素(線( X ,是,傳奇( 4 ) ,行序( 0 ) ,統計匯總( “意思是” ) ) ) ,
本地數據過濾器(
地點( { 207 ,第385章} ) ,
添加過濾器(列( :年) ,在哪裡( :年>= 1982年& :年<= 1990年) ) ,
模式(選擇( 0 ) ,展示( 1 ) ,包括( 1 ) )
)
) ;
)
) ;
回复:從數據表中取消疊加圖中的數據鏈接或者使用新窗口的想法:
dt = 打開(“$SAMPLE_DATA/Fitness.jmp”);
新窗口(“我的窗口”,
大綱框( "我的大綱框",
V 列錶框(
洛 = 9;
你好=11;
op1 = 疊加圖(
X(:運行時),
Y(:氧),
其中( :運行時 >= lo & :運行時 <= hi )
);,
洛 = 10;
你好=12;
op2 = 疊加圖(
X(:運行時),
Y(:氧),
其中( :運行時 >= lo & :運行時 <= hi )
);
)
)
);
回复:從數據表中取消疊加圖中的數據鏈接這是使用日記想法的一種可能性。
dt = 打開(“$SAMPLE_DATA/Fitness.jmp”);
洛 = 9;
你好=11;
op1 = 疊加圖(
X(:運行時),
Y(:氧),
其中( :運行時 >= lo & :運行時 <= hi )
);
報告(op1)<<期刊();
jrn = 當前期刊();
洛 = 10;
你好=12;
op2 = 疊加圖(
X(:運行時),
Y(:氧),
其中( :運行時 >= lo & :運行時 <= hi )
);
jrn << 追加(報告(op2));
回复:從數據表中取消疊加圖中的數據鏈接謝謝大家的建議。兩者都是解決問題的有趣方法。但是,這兩種方法都不適用於我的特定應用程序,因為我想在單個 VListBox 窗口中創建多個 OP(抱歉,我在原來的帖子中並不清楚這一點)。我似乎無法弄清楚如何使您的任何一種方法都能實現這一點。有任何想法嗎?
新窗戶(
V 列錶框(
Op1 = 疊加圖(.....),
Op1 = 疊加圖(.....)
)
);
回复:從數據表中取消疊加圖中的數據鏈接這個例子可能提供稍微不同的視角。
dt = 打開(“$SAMPLE_DATA/Fitness.jmp”);
洛 = 9;
你好=11;
疊加圖(
X(:運行時),
Y(:氧),
其中( :運行時 >= lo & :運行時 <= hi )
);
洛 = 10;
你好=12;
疊加圖(
X(:運行時),
Y(:氧),
其中( :運行時 >= lo & :運行時 <= hi )
);
回复:從數據表中取消疊加圖中的數據鏈接如果我錯了,請糾正我,但我認為不可能打破平台和數據表之間的鏈接。 該圖必須移出平台,例如移至日記或新窗口。
本例中使用了 Bothe 方法。 兩個過濾後的疊加圖都被發送到同一日誌或單獨的窗口。
清除日誌() ;
dt =打開( “$SAMPLE_DATA\時間序列\羅利溫度.JMP” ) ;
// 數據過濾表達式
過濾器表達式=表達式(
對象= dt <<數據過濾器(
自動清除( 1 ) ,
櫥窗( 0 ) ,
添加過濾器(
列( :姓名( “月” ) ) ,
在哪裡( :姓名( “月” ) >=日期& :姓名( “月” ) <=埃達特)
) ,
模式(展示( 1 ) ,包括( 1 ) )
) ;
對象<<關閉;
) ;
// 疊加圖
覆蓋=表達式(
操作=疊加圖(
X ( :姓名( “月” ) ) ,
是( :姓名( “溫度” ) ) ,
自動重新計算( 0 ) ,
單獨的軸( 1 ) ,
連接缺失( 1 ) ,
連接點( 1 ) ,
發送至報告(派遣( {} , “101” ,比例盒, {顯示主要網格( 1 ) ,旋轉標籤( “自動的” )} ) ) ,
無形的
)
) ;
// 第一個圖
日期= 1 ;埃達特= 3 ;過濾器表達式;覆蓋;
// 新窗戶...
西北=新窗戶( “月 ” ||查爾(日期) || “-” ||查爾(埃達特) ,報告(操作)[ 1 ] ) ;
// 或日記
操作<<雜誌;
// 第二個圖
日期= 5 ;埃達特= 7 ;過濾器表達式;覆蓋;
西北=新窗戶( “月 ” ||查爾(日期) || “-” ||查爾(埃達特) ,報告(操作)[ 1 ] ) ;
操作<<雜誌;