我有一个时间堆栈图,其数据集可以通过单击单选按钮进行更改。模型运行时,当单击单选按钮时,图表会立即更新其外观。但是,当模型暂停时,单击单选按钮时图表的区域将变为空白;相反,图例自动更新。我如何手动强制图表区域重绘自己?模型暂停时如何获取图表来重绘自己?
回答
如果暂停模型中,只有AnyLogic中的一部分实际上是暂停。处理GUI的线程继续运行,这就是为什么您可以在模型暂停时浏览模型的原因。 这也意味着如果您尝试在模拟暂停时更新图表数据,外观将会刷新,但是 - 当您的数据正在当前暂停的另一个线程中更新时,它将不会收到该数据。
如果您想要暂停模拟并仍然能够切换图表中显示的数据,可以查看机场示例模型。它提供了一种很好的方法,可以通过使不同图表可见/不可见并调整宽度,高度,x和y来切换。从本质上讲,您可以制作所需的所有图表,将它们完美重叠,然后使您目前感兴趣的图表可见。
如果要以编程方式创建图表,除了使用例如new TimeStackChart(...)
创建图表之外,还必须将其添加到main.presenation.add(...)
的顶级展示组。如果您不这样做,图表将永远不会出现在模型中,因为模型不会显示任何内容!若要查找有关如何以编程方式创建图表的更多信息,请在Main
中制作图表,然后在Java编辑器中打开Main
。找到您创建的图表,查看它的构造函数(有很多参数!),并将其用作您希望创建的图表的粗略模板。帮助文档将进一步理解您看到的参数。
您是否试过chart.refresh();
方法? 也尝试使用agent.onChange()
更新嵌入代理。
希望帮助
我试过chart.refresh(),但没有奏效。我忘记了agent.onChange()。我会给你一枪! – 2014-11-04 16:43:08
'onChange()'似乎不起作用,不幸的是。它不存在于图表中,并且在Main代理上调用'onChange()'也不会执行任何操作。 – 2014-11-04 17:16:53
我遇到了完全相同的问题,并提出了解决方法。
试试这个,这是我知道的AnyLogic V7作品:
if (getEngine.getState() == getEngine().PAUSED){
dynChart.setSelectedItemIndices(new int[]{0});
dynChart.setSelectedItemIndices(null);
}
我能得到图表暂停或选择/取消传说项目之一完成后手动刷新。我花了几个小时尝试API的变化无济于事,所以我只是模仿在UI中实际工作并且工作。
我正在动态生成一个文本项目作为图表标题,但我没有同样的运气让图标在暂停时刷新文本。对此有任何想法?
我不能说我尝试在图表中刷新文本。也许@Nikolaj可以提供帮助?您可能想要提出一个新问题以获取社区的反馈意见。在答案中提出问题不太可能让你找到你想要的答案。 :) – 2015-01-16 18:32:56
- 1. 暂停重绘Windows窗体
- 2. 击:重定向时,暂停
- 3. 如何暂停,停止和重置AUFilePlayer?
- 4. 如何在视图消失时暂停并重新启动NSTimer?
- 5. 如何在Sage中绘制自己的图表?
- 6. 任何方式来暂时停止布局重新计算?
- 7. 获取模型值时NG重复
- 8. 获取来自不同模型的精选图片
- 9. 如何绘制暂停队列信号量的状态图?
- 10. 如何在悬停时暂停setInterval
- 11. wxGLCanvas暂停绘制事件?
- 12. 如何重建CoreData模型的图表
- 13. 声音来自当它被暂停
- 14. 无法获取对象来重绘
- 15. 暂停和取消暂停线程
- 16. 暂停和取消暂停AS2动画
- 17. 绘制自己的自定义视图
- 18. 如何按暂停按钮时暂停程序执行
- 19. 如何通过暂停来拆分流
- 20. 如何暂停JavaScript来允许渲染
- 21. 如何在动态绘制HTML表格时“暂停”页面刷新
- 22. 如何获取我自己的代码模块句柄?
- 23. 我自己在matter.js模型
- 24. 音频暂停时暂停变化的图像
- 25. 我的投影在自己重绘?
- 26. iPhone:强制UIButton重绘自己
- 27. Android暂停模式
- 28. 如何在表获取新记录时自动更新图表?
- 29. 如何从多个网址获取模型时渲染视图
- 30. 如何使用qtruby获取模型/视图工作表?
我们有客户希望在模型完成或暂停时查看各种人群的可视化。例如,假设模型完成,他们正在查看火星人口中的男性人数。现在他们想看到海王星人口中的女性人数。当我切换数据集时,图表不会刷新。我知道图表通常更新自己的数据,但是当我以编程方式切换数据集时,图表是否应该看到有新数据,或者线程中是否有逻辑? – 2014-11-04 16:42:51
如果您处于暂停模式,我不认为图表会看到新的数据集。但您可以尝试 .update()或 .updateData() [link] http://www.anylogic.com/anylogic/help/index.jsp?topic=/com.xj.anylogic.help/ HTML /分析/酒吧%20Chart.html 如果不起作用。我建议看看机场的例子。他们使用不同的方法,在那里交换图形而不是数据集。所以这个图已经绘制出来了...... – 2014-11-05 08:36:59
'update()'和'updateData()'都不起作用,这有点违反直觉。我会尝试机场的例子。 – 2014-11-05 17:14:26