将 for 生成的序列结果插入到 clojurescript 中的FlexibleXYPlot中

问题描述 投票:0回答:1

在这个问题中(如何从 clojurescript 中的单个函数返回两个 customSVGSeries),我学习了如何将创建两个

customSVGSeries
的函数的结果插入到
XYPlot
中。

现在我想插入

for
调用同一函数的结果:

(into [:> rvis/FlexibleXYPlot {...}] 
      (doall (for [[id {:keys [x y texto]}] etiquetas]
               (crear-etiqueta id x y texto))))

其中

etiquetas
是具有以下形式的地图:

{:etiqueta-1 {:x 0, :y 0, :texto ["176.6"]}, :etiqueta-2 {:x 1, :y 2, :texto ["Hidrógeno"]}}

and

crear-etiqueta
是返回两个
customSGVSeries
的函数。问题是使用上面的代码,图中没有显示任何内容。

我上传了带有 MWE 的存储库:https://github.com/lopezsolerluis/annie-test-for-stackoverflow

clojurescript react-vis
1个回答
1
投票

扩展我对问题的评论。

for
与两个集合一起使用:

(into [:> rvis/FlexibleXYPlot {...}] 
      (for [[id {:keys [x y texto]}] etiquetas
            series (crear-etiqueta id x y texto)]
        series))

for
将迭代
eqieuetas
,对于每个项目,它将对其进行解构并将结果传递到
crear-etiqueta
,后者返回一个集合。然后
for
迭代该集合并将每个项目的值分配给
series
。最后对 body 进行求值,仅返回
series
的值。

使用

mapcat
传感器:

(into [:> rvis/FlexibleXYPlot {...}]
      (mapcat (fn [[id {:keys [x y texto]}]]
                (crear-etiqueta id x y texto)))
      etiquetas)

我不会详细介绍它的工作原理——所有内容都记录在here。我绝对建议您完整阅读该参考资料,因为传感器在许多情况下都非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.