急等,如何设置TeeChart的X坐标轴上每个点的Lable?

急等,如何设置TeeChart的X坐标轴上每个点的Lable?,第1张

VC 6.0

1、设置Lable类型

m_TChartTest.Series(0).GetMarks().SetVisible(TRUE)//显示第一条曲线的标记

m_TChartTest.Series(0).GetMarks().SetStyle(0)// 设置Lable的类型:0-Y轴数值;1-Y轴数值(百分数);2-X轴数值;3-X轴和Y轴数值(百分数);4-X轴和Y轴数值

2、添加点(AddXY方法或Add方法)

m_TChartTest.Series(0).Add(123, "9月", RGB(0,0,0))// 第一个参数是y轴值,第二个参数是对应的x轴的标签值(此为当前时间字符串),第三个参数是所绘点的颜色。

m_TChartTest.Series(0).AddXY(i, m_vMaterial[i].fQuantity, strLable, RGB(255,0,0))// 添加X、Y轴的值

您可以试一下:)

绘制的点一直是方形

原因如下:series->setUseOpenGL(true)//openGl 加速

也就是说不能使用openFL加速

LightningChart的一个优点:在图中,通过鼠标滚轮,轻松实现放大缩小功能,便于观察曲线细节,下图为缩小放大效果:

绘制曲线的代码:

using Systemusing System.Collections.Genericusing System.ComponentModelusing System.Datausing System.Drawingusing System.Linqusing System.Textusing System.Threading.Tasksusing System.Windows.Forms//添加引用集using Arction.WinForms.Chartingusing Arction.WinForms.Charting.SeriesXY

namespace WindowsFormsApplication5{public partial class Form1 : Form{public Form1(){InitializeComponent()}//画线方法private void PaintLine(){DataBaseOpe ope = new DataBaseOpe()//禁用属性改变引起的重画,以便更快的渲染lightningChartUltimate1.BeginUpdate()//lightningChartUltimate1.Dock = DockStyle.Fill//添加点线系列PointLineSeries pls = new PointLineSeries(lightningChartUltimate1.ViewXY,lightningChartUltimate1.ViewXY.XAxes[0],lightningChartUltimate1.ViewXY.YAxes[0])//显示点pls.PointsVisible = falseSeriesPoint[] aPoints = new SeriesPoint[1000]for (int iPoint = 0 iPoint < ope.GetXmax() + 1 iPoint++){aPoints[iPoint].X = (double)iPointaPoints[iPoint].Y = ope.GetYvalue(iPoint)}//为点线系列分配数据pls.Points = aPoints//将点线系列添加进列表lightningChartUltimate1.ViewXY.PointLineSeries.Add(pls)//允许Chart绘图lightningChartUltimate1.EndUpdate()}

private void buttonGO_Click(object sender, EventArgs e){DataBaseOpe ope = new DataBaseOpe()PIDdeal pid = new PIDdeal()//LightningChart初始化lightningChartUltimate1.ViewXY.PointLineSeries.Clear()//数据库初始化:清空数据库ope.ClearDataBase()//PID变量初始化pid.PIDinit()pid.SetValue = double.Parse(textBoxSetValue.Text)double p = double.Parse(textBoxKp.Text)double i = double.Parse(textBoxKi.Text)double d = double.Parse(textBoxKd.Text)for(int j = 0j < 1000j++){ope.AddData(j, pid.PIDcontrol(pid.SetValue, p, i, d))}PaintLine()}}}

实现上面图中效果,需要用到数据库 *** 作和PID算法来实现,加上一个timer控件还可以实现实时曲线的绘制

上图包含多种图表绘制的例子,可自定义实现数据可视化 *** 作。

(简数科技    技术支持      免费中文)


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

原文地址: http://outofmemory.cn/bake/11198231.html

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

发表评论

登录后才能评论

评论列表(0条)

保存