在上篇文章中我们讲述了C1Chart的图表,包括金融图表和数据统计。本文下半部分就主要来讲行业数据分析中的等高线和等高区域。
ComponentOne Chart for WinForms包含80多种2D和3D图表类型,无需代码的图表设计器,灵活的可定制的图表元素,最佳的视觉效果,可与最终用户的交互, 优秀的鼠标跟踪能力等。
使用ComponentOne Chart for WinForms可以提升数据分析系统。
等高线和等高区域
C1Chart3D控件可以自动的生成等高线,和根据您的数据划分区域。可以将它用于表达温度、海拔、大气质量等领域的专业数据。C1Chart3D使用内置的色谱或者用户自定义来给各个区域上色。C1Chart3D可以迅速的在区域间自动调配柔顺的渐进色。
另外还有强大的交互能力,Chart提供内置的交互功能,包括鼠标驱动旋转、升高、移动和收放。
C1Chart3D绑定数据:Chart3DDataSetGrid绑定XML数据,用来自动生成等高线。具体代码如下:
Chart3DDataSetGrid grid = c1Chart3D1.ChartGroups.Group0.ChartData.SetGrid; IList rows = categorySales1.List; Chart3DAxis x = c1Chart3D1.ChartArea.AxisX; Chart3DAxis y = c1Chart3D1.ChartArea.AxisY; Chart3DAxis z = c1Chart3D1.ChartArea.AxisZ; grid.RowCount = rows.Count; grid.ColumnCount = 4; for (int i = 0; i < rows.Count; i++) { DataRowView view = rows[i] as DataRowView; DataRow r = view.Row; grid[0, i] = System.Convert.ToDouble(r[1]); grid[1, i] = System.Convert.ToDouble(r[2]); grid[2, i] = System.Convert.ToDouble(r[3]); grid[3, i] = System.Convert.ToDouble(r[4]); y.ValueLabels.Add(i, r[0].ToString()); } x.ValueLabels.Add(0, "Q1"); x.ValueLabels.Add(1, "Q2"); x.ValueLabels.Add(2, "Q3"); x.ValueLabels.Add(3, "Q4"); x.AnnoMethod = AnnotationMethodEnum.ValueLabels; x.AnnoPosition = AnnoPositionEnum.Both; x.MajorGrid.IsOnXYPlane = true; x.MajorGrid.IsOnXZPlane = true; x.MajorGrid.Style.Color = SystemColors.ControlDarkDark; y.AnnoMethod = AnnotationMethodEnum.ValueLabels; y.AnnoRotated = true; y.AnnoPosition = AnnoPositionEnum.Both; y.MajorGrid.IsOnXYPlane = true; y.MajorGrid.IsOnYZPlane = true; y.MajorGrid.Style.Color = SystemColors.ControlDarkDark; z.AnnoFormat = FormatEnum.NumericManual; z.AnnoFormatString = "#,"; z.Text = "$1,000's"; z.UnitMajor = z.UnitMinor; z.MajorGrid.IsOnXZPlane = true; z.MajorGrid.IsOnYZPlane = true; z.MajorGrid.Style.Color = SystemColors.ControlDarkDark;
C1Chart3D调整缩放:通过Chart3D的Scal来调整缩放比例,代码如下:
//Adjust zoom level c1Chart3D1.ChartArea.View.ViewportScale = 1.4f; c1Chart3D1.ChartArea.View.ViewportHorizontalShift = .15f; c1Chart3D1.ChartArea.View.ViewportVerticalShift = -.17f;
C1Chart3D等高线的交互:通过设置,C1Chart3D可以实现鼠标驱动旋转、升高、移动和收放。在Demo中,当鼠标拖拽或是调整TrackBar的时候,都可以驱动旋转,代码如下所示:
private System.Windows.Forms.TrackBar trkYAxis; private void trkXAxis_Scroll(object sender, EventArgs e) { c1Chart3D1.ChartArea.View.RotationX = trkXAxis.Value; } private void trkYAxis_Scroll(object sender, EventArgs e) { c1Chart3D1.ChartArea.View.RotationY = trkYAxis.Value; } private void trkZAxis_Scroll(object sender, EventArgs e) { c1Chart3D1.ChartArea.View.RotationZ = trkZAxis.Value; }
通过上述操作自动生成的等高线图表如下所示,可以将它用于表达温度、海拔、大气质量等领域的专业数据。
本Demo的源代码如下: