将布尔值用于绘图样式或线宽会导致错误。如何以正确的方式做到这一点?

Using Boolean for plot style or linewidth causes error. How to do it the right way?

在这个简化的示例中,我们更改了绘图函数的 style

plot(Something, "SomethingWePlot", color=colorful, linewidth = 1, style = BooleanVariable ? plot.style_line : plot.style_cross)

我们可以用它的颜色来做,但如果我想要相同的线条样式,则会出现以下错误消息:Cannot call 'operator ?:' with argument 'expr0'='BooleanVariable'. An argument of 'series bool' type was used but a 'input bool' is expected

当我想通过布尔变量更改 linewidth 值时会发生同样的情况:

plot(Something, "SomethingWePlot", color=colorful, linewidth = BooleanVariable ? 3 : 1, style = plot.style_cross)

本例中的错误信息:Cannot call 'plot' with argument 'linewidth'='call 'operator ?:' (series int)'. An argument of 'series int' type was used but a 'input int' is expected

如何正确操作?有一个旧的解决方法 here 但据我所知,它消耗了 64(限制)中的 2 个图,由于一堆 plotchars 和标签,我已经接近限制了。

解决方法是唯一的方法,因为线宽和样式参数需要在编译时作为 constants/input 变量已知,并且在脚本执行期间不能修改。

如果你真的离不开额外的地块,你可以通过将所需的地块分成多个 sets/scripts 来实现解决方法,每个地块显示全部所需地块的一部分。然后将它们应用于图表并将它们移动到同一窗格并共享相同的比例,以便它们相互重叠。