我正在使用建议的方法@XanGregg在这个帖子在图形生成器中绘制矢量图。但是,本地数据过滤器似乎对箭头不起作用。 它只过滤点,但不过滤箭头。 您对如何修复它有什么建议吗?
如果您想使用本地数据过滤器来实现此操作,请参阅脚本索引示例:
box<<获取行状态
box<<创建行状态处理程序
这些与您可以在 DataTable 对象上使用的方法类似,但如果给定的框受过滤器约束,它们将使用过滤器行状态而不是数据表行状态。
下面是一段 JSL,它使用数据过滤器(而不是本地数据过滤器)来执行您想要的操作。数据过滤器排除和隐藏数据表中的行,这些行可以在添加图形脚本中轻松选取。使用本地数据过滤器需要更加复杂。看看这个方法是否适合你
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "Filtered Arrows",
Lineup Box( N Col( 2 ),
dt << Data Filter(
Location( {780, 189} ),
Width( 197 ),
Mode( Show( 1 ), Include( 1 ) ),
Add Filter( columns( :Speed ), Display( :Speed, Size( 185, 20 ), Height( 50 ) ) )
),
dt << Bivariate(
Y( :Lat1 ),
X( :Lon1 ),
SendToReport(
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Frame Size( 501, 429 ), Add Graphics Script(
2,
Description( "Script" ),
Pen Size( 2 );
For Each Row(
If( Excluded( Row State( Row() ) ) == 0,
Arrow( {:lon1, :lat1}, {:lon2, :lat2} )
)
);
), Grid Line Order( 3 ), Reference Line Order( 1 )}
)
)
)
)
);谢谢@tx尼尔森。 您能举个例子吗? 我对JSL不是很熟悉。 我怎样才能使图形脚本来识别本地数据过滤器并绕过这些行的箭头绘制?
您将需要修改添加图形脚本代码以识别新过滤器,然后绕过这些行的箭头绘制。有X Origin()和Y Origin()、X Range()和Y Range()等函数可以检查图形是否发生变化,然后可以显示过滤后的箭头。