在上篇文章中我们讲述了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的源代码如下:
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。