我想从CSV文件在NetLogo中创建两个图。
我有两个csv文件,每个文件有一行数据。我有730个数据点,每行我想在模型中绘制作为基线,用于与模型结果进行比较。
我得到错误:图被检查为输入,但得到的是列表。
先谢了。
extensions[
csv]
globals [
real_thc
real_tnhc
]
to setup
clear-all
ask patches [set pcolor 39]
reset-ticks
end
to go
plot_go1
plot_go2
tick
end
to plot_go1
file-open "thc.csv"
if file-at-end? [ stop ]
set real_thc csv:from-row file-read-line
file-close
end
to plot_go2
file-open "tnhc.csv"
if file-at-end? [ stop ]
set real_tnhc csv:from-row file-read-line
file-close
end
1条答案
按热度按时间vc9ivgsu1#
您需要一次绘制一个点,而不是一次绘制所有点。使用
foreach
和括号,您可以同时浏览两个列表并绘制相应的点。(foreach list1 list2 [ [x y] -> plotxy x y])
它将合并第一个点的两个列表的第一项,合并第二个点的两个列表的第二项,以此类推。还要注意我是如何使用
plotxy
而不是plot
的,因为plot
只允许您输入y值,并假定x值在每次下一次调用时以固定的间隔递增。将所有这些放到一个可重复的最小示例中,我们可以得到以下代码: