上文中我给大家展示了微软提供的开源toolkit中图表控件的效果和使用,但是与fusion charts相比效果还是显得逊色。本篇将介绍另一种charts控件库—visifire charts。

visifire控件库不仅涵盖wpf/silverlight,还有windows phone的版本(由此可见将wpf的代码移植到silverlight和windows phone上是一个非常平滑的过程)。我们可以从visifire官网下载试用版本。

更加丰富的图表样式

wpf toolkit中的charts提供了7中现成的控件:AreaSeries,PieSeries,LineSeries,BarSeries,BubbleSeries,ColumnSeries,ScatterSeries。visifire-charts则提供了23中图表,但不是一种图表对应一种控件,这也是其高明之处,我们无需更换控件,只需设置一下Visifire.Charts.DataSeries的RenderAs属性即可即时的改变图表类型。

<vCharts:DataSeries x:Name="dataSeries" RenderAs="Polar"  DataSource="{Binding Path=ChartData}">
                        <vCharts:DataSeries.DataMappings>
                            <vCharts:DataMapping MemberName="AxisXLabel" Path="Left" />
                            <vCharts:DataMapping MemberName="YValue" Path="Right" />
                        </vCharts:DataSeries.DataMappings>
                    </vCharts:DataSeries>

定制设置横向/纵向轴线

这也是tool-kit charts不好用的地方之一,在visifire的Chart中我们可以直接在xaml中定制。

<vCharts:Chart.AxesX>
                <vCharts:Axis Title="horizontal title" />
            </vCharts:Chart.AxesX>
            <vCharts:Chart.AxesY>
                <vCharts:Axis Title="vertical title" />
            </vCharts:Chart.AxesY>

使用DataSource和DataMapping绑定数据并进行属性映射

要为表格绑定一个数据源是很简单的,只需设置<vCharts:DataSeris的DataSource属性。然后通过DataMapping将绑定集合对象中的属性与图表的现实目标对应起来。

<vCharts:DataSeries RenderAs="Polar"  DataSource="{Binding Path=ChartData}">
                        <vCharts:DataSeries.DataMappings>
                            <vCharts:DataMapping MemberName="AxisXLabel" Path="Left" />
                            <vCharts:DataMapping MemberName="YValue" Path="Right" />
                        </vCharts:DataSeries.DataMappings>
                    </vCharts:DataSeries>

实战visifire

有了上面的知识我们就可以在实际项目中应用visifire了。这里我们准备做一个用来像客户展示图表数据的demo,它能够及时的变化图表类型,数据的变化也能立即体现到图表上。

我们仍然然使用上篇的demo工程,由于我们上篇的demo中使用了mvvm,所以对于更换视图这样的工作不需要去修改任何viewmodel和业务代码!只需增加一个新的窗口Show2并在app.xaml中设置其为启动窗口。像其中添加visifire的Chart控件,并将图表的DataSource绑定到到ViewModel中。(此外,为了方便演示加了个button用于变更数据和一个combobox用于选择图表样式,visifire的Chart本身高度和宽度不能伸缩,我将它们绑定到父容器的长宽上。)

<vCharts:Chart Watermark="False" Theme="Theme3" Width="{Binding ElementName=scrViewer, Path=ActualWidth}" Height="{Binding ElementName=scrViewer, Path=ActualHeight}"
                            AnimationEnabled="True" AnimatedUpdate="True">
            <vCharts:Chart.Titles>
                <vCharts:Title Text="This is a chart" FontSize="12" />
                <vCharts:Title Text="This is another chart" FontSize="10" HorizontalAlignment="Right" />
            </vCharts:Chart.Titles>
            <vCharts:Chart.AxesX>
                <vCharts:Axis Title="horizontal title" />
            </vCharts:Chart.AxesX>
            <vCharts:Chart.AxesY>
                <vCharts:Axis Title="vertical title" />
            </vCharts:Chart.AxesY>
            <vCharts:Chart.Series>
                    <vCharts:DataSeries x:Name="dataSeries" RenderAs="Polar"  DataSource="{Binding Path=ChartData}">
                        <vCharts:DataSeries.DataMappings>
                            <vCharts:DataMapping MemberName="AxisXLabel" Path="Left" />
                            <vCharts:DataMapping MemberName="YValue" Path="Right" />
                        </vCharts:DataSeries.DataMappings>
                    </vCharts:DataSeries>
                </vCharts:Chart.Series>
        </vCharts:Chart>

这样,只需更换一个View而ViewModel和Model无需任何更改,我们就将一个之前使用toolkit charts的demo改成一个使用visifire的demo,由此可见合理的设计能够节省程序员的大量时间。
  
本文demo源码下载地址

相关资源

最后奉上visifire的相关资源:

visifire@codeplex

官方showcase

visifire文档(visifire官方提供的文档还是非常详细的)

在线设计器

转载于:https://www.cnblogs.com/wJiang/archive/2010/12/16/1907430.html

数据统计的视觉盛宴---visifire charts相关推荐

  1. 数据统计软件SPSS PASW Statistics v18 多国语言版功能介绍

    数据统计软件SPSS PASW Statistics v18 多国语言版功能介绍 1.增强的数据管理功能 在10版以后,SPSS的每个新增版本都会对数据管理功能作一些改进,以使用户的使用更为方便.13 ...

  2. php 自定义表格并统计,PHP 使用Echarts生成数据统计报表的实现

    这篇文章主要介绍了PHP 使用Echarts生成数据统计报表的实现代码,需要的朋友可以参考下 echarts统计,简单示例 先看下效果图 看下代码 HTML页面 为ECharts准备一个Dom,宽高自 ...

  3. 数据统计之用户总量统计

    数据统计 在进入到后台页面后,首先我们需要完成如下功能: 1.用户总数统计 2.日增用户统计 3.日活用户统计 4.下单用户统计 5.月新增用户统计 6.商品访问量统计 [将所有的业务逻辑的代码都放在 ...

  4. 常用的数据统计Sql 总结(转)

    转:http://www.cnblogs.com/zhangweizhong/p/5577842.html 最近刚在搞一个BI的项目,里面需要大量的sql 数据统计相关运用,加深了我又对SQL的理解与 ...

  5. GraphPad Prism —— 简单又好用的生物数据统计绘图软件

    GraphPad Prism 简介 GraphPad Prism是一个数据处理软件,它的优点是专门为生物.医学等生命科学学科所设计,从原始数据到统计绘图,简单地数据分析都可以轻松搞定,并且很容易上手. ...

  6. 多条记录取最近日期的一条_Excel VBA:基于员工打卡记录的考勤数据统计

    微信公众号:金融数学 使用VBA做一个基于员工打卡记录的考勤数据分析工具; 1应用场景 某公司通过门禁系统记录了每位员工上下班打卡时间,现在需要对一段特定时间内员工出勤情况进行统计分析,包含加班时间( ...

  7. 个推数据统计产品(个数)iOS集成实践

    2019独角兽企业重金招聘Python工程师标准>>> 最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新 ...

  8. 记住这个网站:服务器相关数据统计网站 http://news.netcraft.com/

    http://news.netcraft.com/ 需要参考现在服务器相关数据,可以上这个网站. 当然google趋势也是一个可选得备案. 有一个数据统计更全面的: http://w3techs.co ...

  9. 基于springboot实现疫情数据统计系统

    项目编号:BS-XX-038 本系统基于springboot实现开发,主要实现国内各省的疫情数据管理及实时统计,特点是利用图形报表实现展示各省确诊人数.疑似人数.隔离人数.治愈人数,利用不同的数据展示 ...

最新文章

  1. bundle包是什么意思_iOS开发里的Bundle是个啥玩意?!
  2. GuozhongCrawler系列教程 (4) StartContext具体解释
  3. pd.merge 结果出现重复_COUNTIFS函数技巧之去重复值计数(思路分析,过程详解)...
  4. gorm增删查改json_gorm 关联查询请教
  5. 密码篇——对称加密—DES
  6. LVS-DR+Keepalived 高可用群集
  7. JavaScript学习(四十二)—利用工厂模式创建对象以及工厂模式创建对象的不足
  8. mysql 存储过程的使用;
  9. 云计算之路:数据库服务器的选择——舍RDS取云服务器
  10. OpenGL学习笔记_简介_环境配置_创建一个窗口实例
  11. poi导入到mysql_POI解析Excel导入数据到mysql
  12. 数字逻辑电路课程设计报告
  13. Excel如何拆分字符串
  14. 计算机说课稿模板小学数学,小学数学优质说课稿模板
  15. 常见必问面试问题一_面试自我介绍3分钟、离职原因、期望薪资…(含面试技巧和答案)
  16. mysql ndb 命令_MySQL NDB Cluster环境启动与关闭
  17. 现在网站主流排版方式
  18. android 手机开门,1号社区APP"手机开不了门后的处理流程"
  19. 友价商城2019.2月最新版
  20. LaTeX字体设置(二)

热门文章

  1. C++/C--STL API查询及免费教程网站
  2. 算术编码原理与实现【转载】
  3. linux 系统错误表 和对应的数值
  4. vue监听字符串长度_Vue 的 computed 和 watch 的区别
  5. u盘弹出工具_mac怎么格式化u盘?
  6. 阵列卡直通模式和raid模式_DNF:希洛克Raid攻坚流程攻略
  7. css 下边框 90%,css怎么设置下边框
  8. php5向下兼容php4吗,PHP5与PHP4的区别小议
  9. 计算机丢失pcdsp.dll,计算机libcef.dll丢失
  10. linux搭建nfs