zedgraph控件X轴设置为日期格式后 如何绘制曲线

zedgraph控件X轴设置为日期格式后 如何绘制曲线,第1张

先把a设置成doubl型,设置例子如下:

double a=(double)new XDate((DateTime)(dt.Rows[i]["mydate"])) //这是从datatable从取的mydate数据列

然后添加在PointList1中,PointList1.Add(a, b)

再将x轴设置成日期格式,

myPane.XAxis.Type = AxisType.Date

myPane.XAxis.Scale.Format = "yyyy-MM-dd"

您好,这样:

一个实时曲线的例子,看是否能帮到你~

C# code

public partial class FrmMain : Form

{

// 起始时间以毫秒为单位

int tickStart = 0

public FrmMain()

{

InitializeComponent()

}

private void Form1_Load( object sender, EventArgs e )

{

//获取引用

GraphPane myPane = zedGraphControl1.GraphPane

//设置标题

myPane.Title.Text = "实时曲线"

//设置X轴说明文字

myPane.XAxis.Title.Text = "时间"

//设置Y轴说明文字

myPane.YAxis.Title.Text = "温度"

//设置1200个点,假设每50毫秒更新一次,刚好检测1分钟,一旦构造后将不能更改这个值

RollingPointPairList list = new RollingPointPairList( 1200 )

//开始,增加的线是没有数据点的(也就是list为空)

//增加一条名称:Voltage,颜色Color.Bule,无符号,无数据的空线条

LineItem curve = myPane.AddCurve("温度", list, Color.Blue, SymbolType.None)

timeDraw.Interval = 10 //设置timer控件的间隔为50毫秒

timeDraw.Enabled = true //timer可用

timeDraw.Start() //开始

myPane.XAxis.Scale.Min = 0 //X轴最小值0

myPane.XAxis.Scale.Max = 30 //X轴最大30

myPane.XAxis.Scale.MinorStep = 1//X轴小步长1,也就是小间隔

myPane.XAxis.Scale.MajorStep = 5//X轴大步长为5,也就是显示文字的大间隔

//改变轴的刻度

zedGraphControl1.AxisChange()

//保存开始时间

tickStart = Environment.TickCount

}

private void timer1_Tick( object sender, EventArgs e )

{

//确保CurveList不为空

if (zedGraphControl1.GraphPane.CurveList.Count <= 0)

{

return

}

//取Graph第一个曲线,也就是第一步:在GraphPane.CurveList集合中查找CurveItem

LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem

if (curve == null)

{

return

}

//第二步:在CurveItem中访问PointPairList(或者其它的IPointList),根据自己的需要增加新数据或修改已存在的数据

IPointListEdit list = curve.Points as IPointListEdit

if (list == null)

{

return

}

// 时间用秒表示

double time = ( Environment.TickCount - tickStart ) / 1000.0

// 3秒循环

list.Add( time, Math.Sin( 2.0 * Math.PI * time / 3.0 ) )

Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale

if ( time >xScale.Max - xScale.MajorStep )

{

xScale.Max = time + xScale.MajorStep

xScale.Min = xScale.Max - 30.0

}

//第三步:调用ZedGraphControl.AxisChange()方法更新X和Y轴的范围

zedGraphControl1.AxisChange()

//第四步:调用Form.Invalidate()方法更新图表

zedGraphControl1.Invalidate()

}

private void Form1_Resize( object sender, EventArgs e )

{

SetSize()

}

private void SetSize()

{

// 控制始终是以10像素插入矩形从客户端的形

Rectangle formRect = this.ClientRectangle

formRect.Inflate( -10, -10 )

if ( zedGraphControl1.Size != formRect.Size )

{

zedGraphControl1.Location = formRect.Location

zedGraphControl1.Size = formRect.Size

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11687234.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存