Chad 的图表






3.65/5 (9投票s)
2006 年 3 月 13 日
2分钟阅读

61133

646
一个基本的图表包。
引言
这个周末我有些空闲时间,所以我想尝试着编写一个图表包。这个项目很有趣,但我有点沉迷其中。结果是条形图和折线图控件。结果包含基于 ASP.NET 和 Windows Forms 的控件。
使用代码
源代码包含五个项目,是的,数量不少。其中两个项目是测试项目,ChadsCharts.WebTest
和 ChadsCharts.Test
。两个项目是控件包装器,ChadsCharts.Web
和 ChadsCharts.WinForm
。最后一个项目是 ChadsCharts.Imaging
,它完成了真正的繁重工作。所有编码都在 VS2005 中完成。
ChadsCharts.Imaging
基础渲染代码。生成图表的图像。
ChadsCharts.Web
用于图表的 ASP.NET 控件包装器。
ChadsCharts.WinForm
用于图表的 WinForms 控件包装器。
WebTest
Web 测试应用程序。
ChadsCharts.Test
ChadsCharts.WinForm
的测试应用程序。
您可以使用 Imaging
类直接生成图表,也可以使用 ChadsCharts.WinForm
和 ChadsChart.Web
中的控件。要使用控件,您只需要初始化几个成员,例如标题和数据。每个图表都将 DataSeriesCollection
作为输入,然后自动生成与数据关联的图表。下面的示例代码演示了如何初始化条形图
Private Sub InitBarChart()
Dim series1 As New ChadsCharts.Imaging.DataSeries("Series1")
series1.Color = Color.Red
series1.Add(10)
series1.Add(20)
series1.Add(30)
BarChart1.Data.Add(series1)
Dim series2 As New ChadsCharts.Imaging.DataSeries("Sales2")
series2.Color = Color.Blue
series2.Add(30)
series2.Add(20)
series2.Add(10)
BarChart1.Data.Add(series2)
End Sub
上面的代码创建了两个数据序列。每个序列都在构造函数中给出了一个名称(当前未使用)。序列的颜色通过 Color
成员指定。最后,所有项目(全部是 double
)通过 Add
方法添加到序列中。下面是另一个初始化折线图控件的示例
Private Sub InitLineChart()
Dim series1 As New ChadsCharts.Imaging.DataSeries("Series1")
series1.Color = Color.Red
series1.Add(10)
series1.Add(21)
series1.Add(42)
LineChart1.Data.Add(series1)
Dim series2 As New ChadsCharts.Imaging.DataSeries("Sales2")
series2.Color = Color.Blue
series2.Add(7)
series2.Add(24)
series2.Add(49)
LineChart1.Data.Add(series2)
End Sub
成像类可以在没有图表控件的情况下使用。例如,要创建一个条形图图像,只需使用 ChadsChart.Imaging.BarChartImage
。下面的代码演示了如何使用 BarChartImage
类
Private Sub GenerateImage_NoControl()
Dim barChartImage As New ChadsCharts.Imaging.BarChartImage()
barChartImage.Title = "A bar chart"
barChartImage.Size = New Size(256, 256)
Dim series1 As New ChadsCharts.Imaging.DataSeries("Series1")
series1.Color = Color.Red
series1.Add(10)
series1.Add(20)
series1.Add(30)
barChartImage.Data.Add(series1)
Dim series2 As New ChadsCharts.Imaging.DataSeries("Sales2")
series2.Color = Color.Blue
series2.Add(30)
series2.Add(20)
series2.Add(10)
barChartImage.Data.Add(series2)
barChartImage.ToImageFile("a_bar_chart.png", _
System.Drawing.Imaging.ImageFormat.Png)
End Sub
结论
我不建议在任何重要的事情中使用这个解决方案。正如我之前所说,它基本上是临时拼凑的,但做起来很有趣。这个解决方案可以用作其他项目的起点。