图表构建器动态字幕您好,我希望有人能帮我解决这个问题,让我的图表副标题能够取年份的最小值和最大值。例如,如果最小年份是 2018 年,最大年份是 2025 年,那么副标题应该是“2018 - 2025”。
自动化和脚本编写回复:图表构建器动态字幕最小值/最大值取自本地数据过滤器,还是取自整个数据集?
有关数据筛选器,请查看https://marketplace.jmp.com/appdetails/Graph+Builder+Toolbar
其中一个快捷方式允许您将数据筛选器的设置用作标题(而不是副标题)。
回复:图表构建器动态字幕要调整副标题,请转到C:\Users\_username\_\AppData\Roaming\JMP\JMP\Addins\hogi.GraphBuilderToolbar\resetAxisLabels.jsl
并将第 36 行更改为
gb[Text Edit Box( 2 )] << Set Text( title ); // was Text Edit Box( 1 )
回复:图表构建器动态字幕根据表格中的数据,大致情况如下:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/US Regional Population.jmp" );
:Year << data type(numeric);
Graph Builder(
Show Subtitle( 1 ),
Variables( X( :Year ), Y( :Population ), Overlay( :Region ) ),
Elements( Line( X, Y ) )
);
dt << select where (:year < 1950 ) << exclude(1) << select where(0);
// ---------------
myRows=where(dt, not (excluded()));
min = Char(min (dt[myRows,"Year"]));
max = Char(min (dt[myRows,"year"]));
((Current Report() << XPath( "//OutlineBox[@helpKey='Data Filter']" )) << get scriptable object) << Show Subtitle( 1 ) ;
current report()[Text Edit Box( 2 )] << Set Text( min || " — " || max );
回复:图表构建器动态字幕我猜您说的“动态”字幕是指使用本地数据过滤器时的情况?您需要使用一些脚本将“<< 创建过滤器更改处理程序”添加到您的本地数据过滤器中。
我不确定这个例子是否足够完善,但它展示了如何使用“创建筛选器更改处理程序”。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Show Subtitle(1),
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Local Data Filter(Add Filter(columns(:height)))
);
// Reference to filter
ob_filter = (gb << Top Parent) << XPath("//OutlineBox[@helpKey='Data Filter']");
ob_filter = ob_filter[1];
ldf = ob_filter << Get Scriptable Object;
f = Function({a},
dt = gb << Get Data Table;
w = ldf << Get where clause;
If(Is missing(w),
minval = Col Min(:height);
maxval = Col Max(:height);
,
Substitute Into(w, "Select ", "Get Rows ");
r = Eval(EvalExpr(Send(dt, Expr(Parse(w)))));
minval = Min(dt[r, "height"]);
maxval = Max(dt[r, "height"]);
);
title = Eval Insert("^minval^ < height: < ^maxval^");
gb << Dispatch({}, "graph 1 title", TextEditBox, {Set Text(title)});
);
rs = ldf << Make Filter Change Handler(f);
f(0); // run once
回复:图表构建器动态字幕相关讨论——以及类似的解决方案:
是否可以在本地数据过滤器中根据项目选择动态更新“图表标题”(包括多项选择)?
这里希望在 JMP 中添加此功能——无需编写脚本:
自动填充标题 - 图表构建器
本地数据筛选器:选项将所选内容用作图表标题
其理念是:用户可以指定将数据筛选器的哪些条目添加到标题中:

回复:图表构建器动态字幕您好,很抱歉造成了误解,我应该说得更清楚一些。我指的是整个数据集。随着数据集的更新,我希望副标题中的日期也能随之更新。
回复:图表构建器动态字幕像这样?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/US Regional Population.jmp" );
dt:Year << Data Type( "Numeric" );
dt << Graph Builder(
Show Control Panel( 0 ),
Show Subtitle( 1 ),
Variables( X( :Year ), Y( :Population ), Overlay( :Region ) ),
Elements( Points( X, Y, Legend( 18 ) ) ),
SendToReport(
Dispatch( {}, "graph 1 title", TextEditBox,
{Set Text( Char( Col Min( :Year ) ) || " - " || Char( Col Max( :Year ) ) )}
)
)
);
回复:图表构建器动态字幕效果非常好!非常感谢!