我是 JSL 的新手。 我的问题是如何将行状态标记更改为与列相同的值。 我有一列包含 1,2,3,4....350。 我想在图形生成器中显示数字作为标记,而不是钻石、* 或圆圈。 有什么方法可以引用标记状态中的列值吗?
例如,
对于每一行( 行状态( Row() ) = 标记状态( :M) ) ); -> 这会将所有数据的标记更改为 M
对于每一行( 行状态( Row() ) = 标记状态( :Column("Die") ) ); -> 这不起作用。
我没有使用过脚本。 我只是好奇它是如何工作的。 我真的很感谢你的时间和精力。
谢谢您的帮助。
人们可以交互地将每个标签拖动到新位置,但该解决方案是不可接受的。 一些标签的手动重新定位可以在脚本中捕获,然后扩展到所有标记,但我还没有研究过。 我相信该脚本需要确定每个标签的大小(以像素为单位)并将笛卡尔坐标转换为像素。
非常感谢马克。 这正是我想要的。 我是否可以将标签放置在点的顶部而不是侧面?
要用作标记标签的值必须是指定用作标签的数据列中的值。 在此使用 Big Class 数据表的示例中,姓名列被指定为标签列。 你必须进一步选择所有要标记的行然后选择排>标签应用标签。 在本例中,我选择了所有行。 图形生成器中的结果如下所示:

这个结果是你想要的吗?
我建议你阅读帮助>图书> 基本绘图以获取更多信息和示例。
抱歉之前说了我的目标。 我的目标是用数据值制作我的图形生成器标记。 想象它是一个数字数组中的一个数组。 我使用图表的轴来显示它们的物理位置,并且数据点应显示其对应的骰子的值。
如果你检查附图,数字 274 应该代表突出显示的标记。
谁能帮我这个?
太感谢了。
你之前没有提到标签。 除了标记(形状)之外,各个标记还可以用一个或多个数据列中的数据值来标记。 您指定将哪些列用作标签。 选择带有标签数据的列,然后选择“列”>“标签”。 设置标签后,现在选择所有行。 选定的行将在图形生成器中标记。
很抱歉,我们一次只采取这一步骤,但您的总体目标尚不清楚。
谢谢你的回复,马克。 那么,有没有一种方法可以将标签永久地标记在图表的值上呢?
行状态与观察(行)相关联,而不是与变量(列)相关联。 如果您想为每列使用不同的标记,则可以在图形生成器中更改标记。 下面是一个简单示例的脚本,根据第 1 列绘制第 2-4 列。
Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Name( "1" ) ),
Y( :Name( "2" ) ),
Y( :Name( "3" ), Position( 1 ) ),
Y( :Name( "4" ), Position( 1 ) )
),
Elements(
Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 5 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 6 ) )
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
5,
Base( 0, 0, 0 ),
Base( 1, 0, 1 ),
Base( 2, 0, 2 ),
Properties( 0, {Marker( "Diamond" ), Fill Color( 0 )} ),
Properties( 1, {Marker( "Triangle" ), Fill Color( 0 )} ),
Properties( 2, {Marker( "Square" ), Fill Color( 0 )} )
)}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {5, [3, 4, 5], 6, [0, 1, 2]} ),
Position( {3, 4, 5, 0, 1, 2} )}
)
)
);
我建议您首先以交互方式尝试这种更改。 像往常一样在 Y 角色中设置几列。 然后右键单击绘图并选择自定义。 您将看到一个对话框,其中包含可自定义对象的列表,包括当前标记。 现在,一次在列表中选择一个标记,然后单击右侧的当前标记并选择另一个标记。
脚本可以设置图形生成器,然后循环浏览每一列并更改标记。
顺便说一句,您可以使用任何 Unicode 字符作为标记。 请注意,标记只能是一个字符。