我看到了两种获得你想要的东西的方法之一。
第一种方法是将数据更改为 Y 轴有 2 列的位置。每个 Ram Travel 一栏用于您的平滑度,一栏用于 Ram Travel 用于您的开始时间。表中的行不重叠。存在实际 Ram Travel 数据或偏移量 Ram Travel 数据的数据,但不是两者都有

然后创建图表,X 轴为时间,Y 轴为 Ram Travel 和 Ram Travel2。
然后将 Y 轴分成左轴和右轴。这将允许您独立处理两组数据。将右轴作为点,将左轴作为平滑器

第二种方法是仅在起始参考点的 X 轴上添加一条参考线。如果它是示例图表中所示的静态值,那么此方法可能是处理显示的更好方法

可以将一个简单的 << 添加图形脚本添加到您的图形中,该脚本将获取参考线的值,然后将 << 添加参考线应用于图形。
我不确定对于我正在查看的每个实验,这将如何使用不同的值。 数据都在一个表中,我通过使用本地数据过滤器在一个实验与另一个实验之间移动。 有没有办法让图形为每个实验找到参考线,并根据我使用的本地数据过滤器更改参考线?
如果您可以提供一些样本数据,我会研究一下这个问题。
我附上了一个示例数据集。 该表还包括一个脚本,可以按照我现在的方式制作图形,例如。
将一组值移动到新轴确实允许可视化,但如果我这样做,那么我不能将次轴用于另一个因素。 附件是图表的图像,其中包含我已经计划包含在图表中的次要因素。
参考线并不是一个好的选择,因为我有很多这样的图表,每个图表都有不同的红色数据点。 它始终是一条线,不会随时间变化,但它的值会根据批次而变化。 附件是具有两个 y 因子的图形示例。

我已经能够修改您的代码以将数据显示为更平滑,并将第一和第二重要时间显示为参考线。

JSL 使用 Make Row State Handler 来确定 Local Data Filter 已更改,然后找到正确的 1st 和 2nd Important Time 数据,删除旧的参考线,然后添加新的参考线。
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "filter test",
Data Filter Context Box(
H List Box(
dt << Data Filter(
Local,
Add Filter(
columns( :ProcessID ),
Where( :ProcessID == "\!"0A84CE32-1054-494B-B89C-1F4780E1F760\!"" ),
Display( :ProcessID, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
V List Box(
//t = Text Box( "0 Rows Excluded" ),
t = gb = Graph Builder(
Size( 483, 600 ),
Variables(
X( :"Time Adjusted (s)"n ),
Y( :"Ram Travel Corrected (mm)"n ),
Y( :Other Factor, Position( 1 ), Side( "Right" ) )
),
Elements( Smoother( X, Y( 1 ), Legend( 8 ) ), Smoother( X, Y( 2 ), Legend( 9 ) ) ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Line Width( 4 )}, Item ID( "Smooth(Ram Travel Corrected (mm))", 1 ) )
), Legend Model( 9, Properties( 0, {Line Width( 4 )}, Item ID( "Smooth(Other Factor)", 1 ) ) )}
)
)
)
)
)
);
updatetext = Function( {},
rs = t << Get Row States();
n = 0;
For( ii = 1, ii <= N Rows( rs ), ii++,
If( Excluded( As Row State( rs[ii] ) ),
n++,
Break();
)
);
If( ii != preRefLine,
Try( Report( gb )[AxisBox( 1 )] << Remove Ref Line( dt:"1st Important Time (s)"n[preRefLine] ) );
Try( Report( gb )[AxisBox( 1 )] << Remove Ref Line( dt:"2nd Important Time (s)"n[preRefLine] ) );
Report( gb )[AxisBox( 1 )] << Add Ref Line( dt:"1st Important Time (s)"n[ii], "Solid", "Orange", "", 4 );
Report( gb )[AxisBox( 1 )] << Add Ref Line( dt:"2nd Important Time (s)"n[ii], "Solid", "Green", "", 4 );
preRefLine = ii;
);
);
rsupdate = Function( {a},
If( Is Matrix( a ),
updatetext()
)
);
rsh = t << Make Row State Handler( dt, rsupdate );
updatetext();
我有一个包含两个不同 x 轴的图表。 我希望图表只使用平滑值而不是实际值。 但是,当我打开平滑器时,第二个轴的值消失了(红色值)。 有没有办法防止这种情况发生? 请参阅所附图片以获取我正在谈论的示例。
