将布尔值用于绘图样式或线宽会导致错误。如何以正确的方式做到这一点?
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 来实现解决方法,每个地块显示全部所需地块的一部分。然后将它们应用于图表并将它们移动到同一窗格并共享相同的比例,以便它们相互重叠。
在这个简化的示例中,我们更改了绘图函数的 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 来实现解决方法,每个地块显示全部所需地块的一部分。然后将它们应用于图表并将它们移动到同一窗格并共享相同的比例,以便它们相互重叠。