zedgraph 控件画图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zedgraph 控件画图相关的知识,希望对你有一定的参考价值。
请问一下,我如何才能在zedgraph控件中画一条曲线,或者是三角形之类的,同时它的标题该如何修改,我看过了,它没有TEXT,或者是TITLE这一属性。
请举一个最简单的例子。我将不胜感激。
你的回答不见效果,同时我还想问一下,从哪里可以把X轴或者是Y的刻度改变成时间。
谢谢了
public DateAxisSampleDemo() : base( "Code Project Date Axis Sample",
"Date Axis Sample", DemoType.Tutorial )
Graphpane myPane = base.GraphPane;
// Set the titles and axis labels
myPane.Title.Text = "My Test Date Graph";
myPane.XAxis.Title.Text = "Date";
myPane.YAxis.Title.Text = "My Y Axis";
// Make up some data points based on the Sine function
PointPairList list = new PointPairList();
for ( int i=0; i<36; i++ )
double x = (double) new XDate( 1995, 5, i+11 );
double y = Math.Sin( (double) i * Math.PI / 15.0 );
list.Add( x, y );
// Generate a red curve with diamond
// symbols, and "My Curve" in the legend
LineItem myCurve = myPane.AddCurve( "My Curve",
list, Color.Red, SymbolType.Diamond );
// Set the XAxis to date type
myPane.XAxis.Type = AxisType.Date;
base.ZedGraphControl.AxisChange();
参考技术A 如果只是画这样简单的几何图形不用其他的控件吧
C#内置的方法就可以了
---------------------------------------
如果是这样,那你可以试试,一般统计图表都是需要定义一个绘图空间,你试试设置这个绘图空间的title,比如用OWC做图表,需要定义一个ChartSpace,你看看你的有没有类似的东西
DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例
场景
Winform控件-DevExpress18下载安装注册以及在VS中使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243
在使用ZedGraph进行添加曲线时,曲线数量如果很多的情况下,速度会比较慢。
所以在进行添加曲线的过程中需要显示进度,效果如下
注:
博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
在当前要添加进度条的页面打开设计器,并在安装了DevExpress的工具箱中拖拽一个ProgressBarControl
然后在当前窗体的构造方法中进行进度条控件的一些属性设置
public FrmCurveCompareInOne() { InitializeComponent(); progressBarControl1.Visible = true; //设置一个最小值 progressBarControl1.Properties.Minimum = 0; //设置一个最大值 progressBarControl1.Properties.Maximum = 100; //设置进度条的样式 progressBarControl1.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; //当前值 progressBarControl1.Position = 0; //是否显示进度数据 progressBarControl1.Properties.ShowTitle = true; //是否显示百分比 progressBarControl1.Properties.PercentView = true; }
然后在触发显示进度条的方法中传递当前进度条对象
ChartCompareHelper.RefreshPaneComInOne(this.zedGraphControl1, xYModelStore.YAxisModelList,this.progressBarControl1);
在上面刷新ZedGraph的图形的方法中,添加曲线的部分进行进度的设置
if (yList != null && yList.Count > 0) { PointPairList list = null; for (int i = 0; i < yList.Count; i++) { //截取前100个循环进行显示 Global.Instance.PrepareCompareDataInOne = Global.Instance.PrepareCompareDataInOne.Where(p => (int.Parse(p.Id) < 101)).ToList(); //计算进度条步长 int step = 1; //曲线总数小于100 if (Global.Instance.PrepareCompareDataInOne.Count < 100) { step = 100 / Global.Instance.PrepareCompareDataInOne.Count; } else { step = Global.Instance.PrepareCompareDataInOne.Count / 100; } if(progressBar !=null) { //将进度条初始化为0% progressBar.Position = 0; } //循环添加曲线 foreach(DataTreeNode node in Global.Instance.PrepareCompareDataInOne) { IEnumerable<Entity.Record> record = Global.Instance.VirtualData.RecordDataList.Where(p => p.CycleIndex == int.Parse(node.Id)); list = SetCurveTextInOne(yList[i].TitleKey,record); LineItem myCurve = myPane.AddCurve(yList[i].Title, list, System.Drawing.ColorTranslator.FromHtml(yList[i].Color), SymbolType.None); myCurve.YAxisIndex = i; //很关键,对应使用那个坐标值 if(progressBar !=null) { //添加成功一条曲线则进度条增加一个步数 progressBar.Position += step; if (progressBar.Position >=100) { //如果总进度已经大于100了 则赋值为100 progressBar.Position = 100; } //更新进度条的进度 progressBar.Update(); } } if (progressBar != null) { //最终添加完所有曲线后将进度条设置为100% progressBar.Position = 100; } }
以上是关于zedgraph 控件画图的主要内容,如果未能解决你的问题,请参考以下文章