65.9K
CodeProject 正在变化。 阅读更多。
Home

Chad 的图表

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.65/5 (9投票s)

2006 年 3 月 13 日

2分钟阅读

viewsIcon

61133

downloadIcon

646

一个基本的图表包。

Windows Form example of project.

引言

这个周末我有些空闲时间,所以我想尝试着编写一个图表包。这个项目很有趣,但我有点沉迷其中。结果是条形图和折线图控件。结果包含基于 ASP.NET 和 Windows Forms 的控件。

使用代码

源代码包含五个项目,是的,数量不少。其中两个项目是测试项目,ChadsCharts.WebTestChadsCharts.Test。两个项目是控件包装器,ChadsCharts.WebChadsCharts.WinForm。最后一个项目是 ChadsCharts.Imaging,它完成了真正的繁重工作。所有编码都在 VS2005 中完成。

  • ChadsCharts.Imaging

    基础渲染代码。生成图表的图像。

  • ChadsCharts.Web

    用于图表的 ASP.NET 控件包装器。

  • ChadsCharts.WinForm

    用于图表的 WinForms 控件包装器。

  • WebTest

    Web 测试应用程序。

  • ChadsCharts.Test

    ChadsCharts.WinForm 的测试应用程序。

您可以使用 Imaging 类直接生成图表,也可以使用 ChadsCharts.WinFormChadsChart.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

结论

我不建议在任何重要的事情中使用这个解决方案。正如我之前所说,它基本上是临时拼凑的,但做起来很有趣。这个解决方案可以用作其他项目的起点。

© . All rights reserved.