(一). 写本文章目的:
学了一段时间ComponentOne的图表,感觉ComponenOne图表控件还可以,图表样式也较丰富 不过它的帮助全是英文的,而且有些地方写的比较粗糙,示例程序也不够详细. 我把它总结了一下. (二).使用方法 1.安装好ComponentOne软件. 2.建立一个WEB应用程序项目,名称为: TextChart 3.将ComponentOne软件自带的控件集DLL文件(不一定全部,只把需要的一部分)拷贝到自己刚建的 项目TextChart的Bin目录下面 (这里要手动放的原因是ComponentOne有时会找不到Dll) 4.双击项目里任何一个*.aspx文件,打开设计界面。 打开工具栏,在工具栏空白处右击,选“添加/删除”项,打开自定义控件窗口,在.net frame 组件选项卡下选择ComponentOne相应的组件,如果不清楚,就将所有的C1开头的全部勾选,点“确定按钮". 则ComponentOne的控件就显示在工具箱里面了 5. 到了这一步,就可以将ComponentOne控件像一般控件一样直接拖动使用了. 拖C1WebChart控件到窗体页面上. 然后右击控件,选 "Chart wizard..."就可以为其设置显示的样式(饼图/柱状图/折线图等)和属性了,用法跟一般控件差不多。(如果感觉还是陌生的话,请看下面(三),除了用设计器设置外,还可以代码用代码设置) (三) . 代码设置 1. 限于篇幅,只讲解主要的属性 2.所有的图表样式原理差不多都一样的,这里只讲一下饼图的实现方法 using C1.Web.C1WebChart; //命名空间,必需加入,否则找不到里面的类和方法等 using C1.Web.C1WebChartBase; using C1.Win.C1Chart; protected C1.Web.C1WebChart.C1WebChart C1WebChart1; // 控件声明 1) <summary>主要属性</summary> C1WebChart1.Header.Text="Chart 头"; //图表头标题 C1WebChart1.Footer.Text="Chart 尾"; //图表尾文本 C1WebChart1.BackColor = Color.LightSteelBlue; //背景色 C1WebChart1.ImageFormat = System.Drawing.Imaging.ImageFormat.Png; //图像存储格式 C1WebChart1.ChartGroups.Group0.ChartType = Chart2DTypeEnum.Bar; //表类型,Chart2DTypeEnum枚举下有所有的图表样式,如饼图/柱状图等 C1WebChart1.Width=800; //图表宽度 2) <summary>主要方法</summary> a .X轴标签(坐标)的方法,直接调用即可 public void AddAxisX() { // label x axis with product names Axis ax = C1WebChart1.ChartArea.AxisX; ax.ValueLabels.Clear(); ax.AnnoMethod = AnnotationMethodEnum.ValueLabels; for(int i = 0; i < 100; i++) { ax.ValueLabels.Add(i, (i+1).ToString()); } try { ax.Max = 10 - .5; } catch {} } b .Y轴标签(坐标)的方法,直接调用即可 public void AddAxisY() { // label y axis with product names Axis ay = C1WebChart1.ChartArea.AxisY; ay.ValueLabels.Clear(); ay.AnnoMethod = AnnotationMethodEnum.ValueLabels; for(int i = 0; i < 10; i++) { ay.ValueLabels.Add(i, (50*i).ToString()); } try { ay.Max = 20 - .5; } catch {} } c.画图表的方法 public void GetPieData() { C1WebChart1.Legend.Visible = true; //图表区块注释. this.AddAxisX(); //上面方法a this.AddAxisY(); //上面方法b //生成数据 PointF[] data = new PointF[10]; for (int i = 0; i < data.Length; i++) { float y = float.Parse((3*i+5).ToString()); data = new PointF(i, y); } //清除现有的饼图 ChartDataSeriesCollection dscoll = C1WebChart2.ChartGroups[0].ChartData.SeriesList; dscoll.Clear(); //绘图,即将点数组交给控件,它会自己分配,并画出图形 ChartDataSeries series = C1WebChart1.ChartGroups[0].ChartData.SeriesList[0]; series.PointData.CopyDataIn(data);// 这里的data是PointF类型 //给区块加标签 for(int i=0; i < data.Length; i++) { ChartDataSeries series = dscoll.AddNewSeries(); series.PointData.Length = 1; series.Y[0] = data.Y; series.Label="我是:"+(i+1).ToString(); //加标签 C1.Win.C1Chart.Label lbl = C1WebChart1.ChartLabels.LabelsCollection.AddNewLabel(); lbl.Text = string.Format("{0} ({1:c})","第:"+i.ToString()+"扇区", data.Y); lbl.Compass = LabelCompassEnum.Radial; lbl.Offset = 20; lbl.Connected = true; lbl.Visible = true; lbl.AttachMethod = AttachMethodEnum.DataIndex; AttachMethodData am = lbl.AttachMethodData; am.GroupIndex = 0; am.SeriesIndex = i; am.PointIndex = 0; } } finished. |
|
|
关于葡萄城
赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。
了解详情,请访问葡萄城官网。