wrs*_*rsc 5 metaprogramming julia plotly
我创建了一个函数来在 Plotly 中创建一个带有 N 个子图的图形。为了隐藏这些子图的 x 轴标签,我想在这个函数内执行,例如 N=5
relayout!(p, xaxis_showticklabels=false)
relayout!(p, xaxis2_showticklabels=false)
relayout!(p, xaxis3_showticklabels=false)
relayout!(p, xaxis4_showticklabels=false)
Run Code Online (Sandbox Code Playgroud)
由于我事先不知道子图的数量 N,因此我想在循环中执行此操作,在命令 ...xaxis n _...中使用 for 循环计数器n 。
我尝试构造字符串,然后使用 eval(Meta.parse(expr)) 解析它,但这不起作用,因为 eval 仅在全局范围内有效。
任何有关如何执行此操作的建议将不胜感激。
抛开“丑陋的 API”评论(老实说,API很丑陋),我知道你有这样的功能:
f(a; a1=0,a2=0,a3=0) = a+a1+2a2+3a3
Run Code Online (Sandbox Code Playgroud)
并且您想以编程方式在循环中调用诸如f(100, a1=1), f(100, a2=2),之类的内容f(100, a3=3)。
这可以在 Julia 中通过以下代码完成,无需借助元编程:
julia> [f(100; Symbol("a$i")=>i) for i in 1:3]
3-element Vector{Int64}:
101
104
109
Run Code Online (Sandbox Code Playgroud)
正如您在 Julia 中看到的那样,对可以用于以编程方式生成 kwargs