利用DevExpress的WebChartControl绘制柱状图,线状图与饼状图示例


WebChartControl是DevExpress控件群下的一个Web图表控件,它使用非常的方便,生成的图表也相当的漂亮。我们在本章就如何利用WebChartControl控件来绘制柱状图,线状图与饼状图做个示例。
首先,我们需要在aspx页面放置一个WebChartControl控件,代码如下,为简单起见,我们不为它设置任何属性:

<dxchartsui:WebChartControl ID="WebChartControl1" runat="server" Height="200px" Width="500px" >
</dxchartsui:WebChartControl >

注意需要在aspx的头部注册该控件:
<%@ Register Assembly="DevExpress.XtraCharts.v9.1.Web, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.XtraCharts.Web" TagPrefix="dxchartsui" % >
<%@ Register Assembly="DevExpress.XtraCharts.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.XtraCharts" TagPrefix="cc1" % >
而且需要添加对应的dll的引用,这些都是引用一个第三方控件的必需工作,就不细说了。

在开始示例前,我们先为图形创建数据源,我们以DataTable数据源作为示例,该DataTable只包含两列,week列与money列,代码如下:

public DataTable GetDataSource
{
    get
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("week", typeof(string));
        dt.Columns.Add("money", typeof(decimal));

        dt.Rows.Add("星期一", 1200);
        dt.Rows.Add("星期二", 1500);
        dt.Rows.Add("星期三", 1400);
        dt.Rows.Add("星期四", 1450);
        dt.Rows.Add("星期五", 1300);
        dt.Rows.Add("星期六", 1325);
        dt.Rows.Add("星期日", 1400);

        return dt;
    }
}

下面我们以GetDataSource为数据源,开始创建图形
1,创建柱形图

protected void Page_Load(object sender, EventArgs e)
{
    Series series = new Series("金额", ViewType.Bar);
    DataTable dt = GetDataSource;
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        SeriesPoint point = new SeriesPoint(dt.Rows[i]["week"].ToString(), Convert.ToDouble(dt.Rows[i]["money"].ToString()));
        series.Points.Add(point);
    }
    this.WebChartControl1.Series.Add(series);
}

运行结果如下:


从上面的图表中可以看到,上面只有"金额"一项数据,如果我们要再加一项"成本"数据来作对比,要如何实现呢?
首先改写数据源,让其包括"成本"这一项的数据:

public DataTable GetDataSource
{
    get
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("week", typeof(string));
        dt.Columns.Add("money", typeof(decimal));
        dt.Columns.Add("cost", typeof(decimal));

        dt.Rows.Add("星期一", 1200, 800);
        dt.Rows.Add("星期二", 1500, 1000);
        dt.Rows.Add("星期三", 1400, 850);
        dt.Rows.Add("星期四", 1450, 950);
        dt.Rows.Add("星期五", 1300, 900);
        dt.Rows.Add("星期六", 1325, 870);
        dt.Rows.Add("星期日", 1400, 890);

        return dt;
    }
}

再改写创建图形的代码:

protected void Page_Load(object sender, EventArgs e)
{
    Series series = new Series("金额", ViewType.Bar);
    Series series_cost = new Series("成本", ViewType.Bar);
    SeriesPoint point;
    DataTable dt = GetDataSource;
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        point = new SeriesPoint(dt.Rows[i]["week"].ToString(), Convert.ToDouble(dt.Rows[i]["money"].ToString()));
        series.Points.Add(point);

        point = new SeriesPoint(dt.Rows[i]["week"].ToString(), Convert.ToDouble(dt.Rows[i]["cost"].ToString()));
        series_cost.Points.Add(point);
    }
    this.WebChartControl1.Series.Add(series);
    this.WebChartControl1.Series.Add(series_cost);
}

运行生成的图表如下:


从上面的代码和结果可以看出来,一个Series对象,就代表图形中的一项数据,一个SeriesPoint对象,就代表项数据中的一个数据点,有了这两项理解,我们要再增加数据项,就非常简单了。

2,创建线状图
知道了怎么创建柱形图,再来创建线状图就很简单了,只需改写图形的类型就可以了。

protected void Page_Load(object sender, EventArgs e)
{
    Series series = new Series("金额", ViewType.Line);
    Series series_cost = new Series("成本", ViewType.Line);
    SeriesPoint point;
    DataTable dt = GetDataSource;
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        point = new SeriesPoint(dt.Rows[i]["week"].ToString(), Convert.ToDouble(dt.Rows[i]["money"].ToString()));
        series.Points.Add(point);

        point = new SeriesPoint(dt.Rows[i]["week"].ToString(), Convert.ToDouble(dt.Rows[i]["cost"].ToString()));
        series_cost.Points.Add(point);
    }
    this.WebChartControl1.Series.Add(series);
    this.WebChartControl1.Series.Add(series_cost);
}

运行结果如下:


3,创建饼状图
和创建线状图一样,只需更改代码

Series series = new Series("金额", ViewType.Line);
Series series_cost = new Series("成本", ViewType.Line);

中的类型即可,修改后的代码如下:

Series series = new Series("金额", ViewType.Pie);
Series series_cost = new Series("成本", ViewType.Pie);

运行结果如下:


4,创建混合图
现在我们将金额的数据以线状显示,将成本的数据以柱状显示,改写Series对象的类型如下:

Series series = new Series("金额", ViewType.Line);
Series series_cost = new Series("成本", ViewType.Bar);

运行结果如下:


利用WebChartControl创建图形很简单吧,只需要简单的几行代码,就可以生成一个漂亮的图形了

本文来源于:http://www.lmwlove.com/ac/ID816

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WinForm DevExpress是一种基于Windows Forms的用户界面开发工具,它提供了丰富的控件和组件,可以帮助开发人员快速构建现代化、高效的桌面应用程序。它具有良好的可扩展性和灵活性,可以满足各种不同的开发需求。同时,它还提供了丰富的文档和示例,方便开发人员学习和使用。 ### 回答2: WinForms是一种桌面应用程序开发框架,它经常用于开发Windows应用程序。而DevExpress是一家软件公司开发的开发组件库,提供了许多优秀的UI组件和开发工具来帮助WinForms的开发。 其中DevExpress的WinForms套件搭配使用可极大地提高开发速度和质量,它提供了许多高效、强大的组件,如Grid Control、Navigation Bar、TreeList等。这些组件可以用来快速地开发界面简洁、功能完整的.WinForms应用程序,而且这些组件在功能上非常强大,比如Grid Control中的数据过滤、排序操作都非常便捷;Navigation Bar可以将菜单操作变得更加直观和方便。总之,DevExpress的WinForms组件大大减少了WinForms应用程序开发的难度。 而且DevExpress还提供了完整的设计器工具,帮助开发者轻松创建和管理WinForms窗体和控件。系统内置的设计器,可以帮助开发人员在设计和开发过程中快速创建应用程序界面,提供了简单、直观的拖放操作。同时,它提供了适用于开发人员的强大的应用程序性能和代码质量的分析工具,以及集成了许多调试工具,优化了应用程序的性能和稳定性。 总之,使用DevExpress的WinForms套件可以使开发者更加专注于自己的业务逻辑和用户体验,而不必花费大量时间和精力去处理诸如界面布局、控件实现等细节问题上。因此,DevExpress WinForms套件是一个非常值得尝试和学习的框架。 ### 回答3: WinForm是指Microsoft Windows Forms的应用程序框架,用于创建基于Windows用户界面的应用程序。它提供了一种开发.NET桌面应用程序的方式,它使用了.NET的核心技术,比如.NET Framework、C#、Visual Basic,以及应用程序的交互方式大多依赖于PC上的鼠标、键盘等设备。 DevExpress是一个软件开发公司,提供了很多工具和控件来开发.NET桌面应用程序。DevExpress所提供的控件比WinForm自带的控件更加强大,并且使用起来也更加灵活和方便。DevExpress的控件库包含了丰富的UI控件、数据控件、表控件等等,这些控件都可以帮助开发者快速地创建出高质量的应用程序。 WinForm DevExpress的优势: 1.控件库:DevExpress控件库比WinForm自带的控件更加丰富和强大,可以大大提高开发效率。 2.视觉效果:DevExpress控件的视觉效果比WinForm自带的控件更加美观,可以帮助用户产生更好的视觉体验。 3.易于学习:DevExpress提供了完善的文档和教程,使得开发者可以很快地学习和上手DevExpress控件。 4.兼容性:DevExpress控件可以很好的与其他控件进行兼容,比如WinForm自带的控件、第三方控件等等。 当然,使用DevExpress控件也有一些劣势: 1.价格:DevExpress控件库相对于其他控件库来说价格较高。 2.性能:DevExpress控件的性能比WinForm自带的控件略低,但是这并不会对应用程序的性能造成太大的影响。 总之,WinForm DevExpress是一个强大的桌面应用程序开发框架,使用DevExpress控件可以大大提高开发效率,同时也可以为用户提供更好的视觉体验。虽然价格有些高,但考虑到它的功能和易用性,它仍然是开发这们不容错过的一个利器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值