求助,关于zedgraph的问题

yang1216 2014-11-27 08:19:23
诸位大神。
我想用zedgraph画历史曲线,大概这么设置的。

var myPane = zedGraphControl1.GraphPane;
myPane.Title.Text = "历史曲线";
myPane.XAxis.Title.Text = "时间";
myPane.YAxis.Title.Text = "数值";
myPane.XAxis.Type = ZedGraph.AxisType.DateAsOrdinal;
myPane.XAxis.Scale.Format = "yyyy-MM-dd HH:mm:ss";
myPane.XAxis.Scale.MajorStepAuto = true;
zedGraphControl1.IsShowPointValues = true;
myPane.Fill = new Fill(Color.White, Color.LightYellow, 45.0f);
PointPairList lineList = new PointPairList();
curve = myPane.AddCurve("tag1", lineList, Color.Red, SymbolType.None);
IPointListEdit pList = curve.Points as IPointListEdit;
foreach(var record in records)
{
var value = record.Data[tagId];
double xTime = (double)new XDate(new DateTime(record.StartTime));
pList.Add(xTime, value);
}
然后确实能画出曲线来。不过遇到一个奇怪的问题。
首先,我故意设定不管用户怎么选择时间段,程序都只取1000条数据来画图。但是由时间段不同,显示的图形却大大不同。
大家看看:



请问,这是怎么回事呀?
...全文
291 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2014-11-30
  • 打赏
  • 举报
回复
个人感觉问题出在AddCurve的数据源 lz检查下lineList, 每次添加Curve前,先清理下

myZed.GraphPane.CurveList.Clear();
myZed.GprahPane.GraphObjList.Clear();
yang1216 2014-11-30
  • 打赏
  • 举报
回复
有先clear. 我在画曲线之前有先clear pane private void buttonSearch_Click(object sender, EventArgs e) { var start = dateTimePickerStart.Value; var end = dateTimePickerEnd.Value; var lstTagId = lstTextBox.Select(p => p.Tag).OfType<int>().ToList(); var repository = new RecordRepository(); var lstRecord=repository.GetByTime(start, end,lstTagId); clearPane(); DrawCurve(lstRecord); } private void clearPane() { var myPane = zedGraphControl1.GraphPane; myPane.CurveList.Clear(); myPane.GraphObjList.Clear(); }
u010018424 2014-11-29
  • 打赏
  • 举报
回复
每次加数据清除上一次的数据了吗
yang1216 2014-11-28
  • 打赏
  • 举报
回复
应该不是数据问题,我断点看了,第二个图里的数据也是变化很大的。
liuyilin888 2014-11-28
  • 打赏
  • 举报
回复
WorldMobile 2014-11-28
  • 打赏
  • 举报
回复
引用 楼主 yang1216 的回复:
诸位大神。 我想用zedgraph画历史曲线,大概这么设置的。 var myPane = zedGraphControl1.GraphPane; myPane.Title.Text = "历史曲线"; myPane.XAxis.Title.Text = "时间"; myPane.YAxis.Title.Text = "数值"; myPane.XAxis.Type = ZedGraph.AxisType.DateAsOrdinal; myPane.XAxis.Scale.Format = "yyyy-MM-dd HH:mm:ss"; myPane.XAxis.Scale.MajorStepAuto = true; zedGraphControl1.IsShowPointValues = true; myPane.Fill = new Fill(Color.White, Color.LightYellow, 45.0f); PointPairList lineList = new PointPairList(); curve = myPane.AddCurve("tag1", lineList, Color.Red, SymbolType.None); IPointListEdit pList = curve.Points as IPointListEdit; foreach(var record in records) { var value = record.Data[tagId]; double xTime = (double)new XDate(new DateTime(record.StartTime)); pList.Add(xTime, value); } 然后确实能画出曲线来。不过遇到一个奇怪的问题。 首先,我故意设定不管用户怎么选择时间段,程序都只取1000条数据来画图。但是由时间段不同,显示的图形却大大不同。 大家看看: 请问,这是怎么回事呀?
应该是数据的问题吧
yang1216 2014-11-28
  • 打赏
  • 举报
回复
自己顶一下。
yang1216 2014-11-28
  • 打赏
  • 举报
回复
自己顶一下。
计及源荷不确定性的综合能源生产单元运行调度与容量配置优化研究(Matlab代码实现)内容概要:本文围绕“计及源荷不确定性的综合能源生产单元运行调度与容量配置优化”展开研究,利用Matlab代码实现相关模型的构建与仿真。研究重点在于综合能源系统中多能耦合特性以及风、光等可再生能源出力和负荷需求的不确定性,通过鲁棒优化、场景生成(如Copula方法)、两阶段优化等手段,实现对能源生产单元的运行调度与容量配置的协同优化,旨在提高系统经济性、可靠性和可再生能源消纳能力。文中提及多种优化算法(如BFO、CPO、PSO等)在调度与预测中的应用,并强调了模型在实际能源系统规划与运行中的参考价值。; 适合人群:具备一定电力系统、能源系统或优化理论基础的研究生、科研人员及工程技术人员,熟悉Matlab编程和基本优化工具(如Yalmip)。; 使用场景及目标:①用于学习和复现综合能源系统中考虑不确定性的优化调度与容量配置方法;②为含高比例可再生能源的微电网、区域能源系统规划设计提供模型参考和技术支持;③开展学术研究,如撰写论文、课题申报时的技术方案借鉴。; 阅读建议:建议结合文中提到的Matlab代码和网盘资料,先理解基础模型(如功率平衡、设备模型),再逐步深入不确定性建模与优化求解过程,注意区分鲁棒优化、随机优化与分布鲁棒优化的适用场景,并尝试复现关键案例以加深理解。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧