数据统计的视觉盛宴---visifire charts
上文中我给大家展示了微软提供的开源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相关推荐
- 数据统计软件SPSS PASW Statistics v18 多国语言版功能介绍
数据统计软件SPSS PASW Statistics v18 多国语言版功能介绍 1.增强的数据管理功能 在10版以后,SPSS的每个新增版本都会对数据管理功能作一些改进,以使用户的使用更为方便.13 ...
- php 自定义表格并统计,PHP 使用Echarts生成数据统计报表的实现
这篇文章主要介绍了PHP 使用Echarts生成数据统计报表的实现代码,需要的朋友可以参考下 echarts统计,简单示例 先看下效果图 看下代码 HTML页面 为ECharts准备一个Dom,宽高自 ...
- 数据统计之用户总量统计
数据统计 在进入到后台页面后,首先我们需要完成如下功能: 1.用户总数统计 2.日增用户统计 3.日活用户统计 4.下单用户统计 5.月新增用户统计 6.商品访问量统计 [将所有的业务逻辑的代码都放在 ...
- 常用的数据统计Sql 总结(转)
转:http://www.cnblogs.com/zhangweizhong/p/5577842.html 最近刚在搞一个BI的项目,里面需要大量的sql 数据统计相关运用,加深了我又对SQL的理解与 ...
- GraphPad Prism —— 简单又好用的生物数据统计绘图软件
GraphPad Prism 简介 GraphPad Prism是一个数据处理软件,它的优点是专门为生物.医学等生命科学学科所设计,从原始数据到统计绘图,简单地数据分析都可以轻松搞定,并且很容易上手. ...
- 多条记录取最近日期的一条_Excel VBA:基于员工打卡记录的考勤数据统计
微信公众号:金融数学 使用VBA做一个基于员工打卡记录的考勤数据分析工具; 1应用场景 某公司通过门禁系统记录了每位员工上下班打卡时间,现在需要对一段特定时间内员工出勤情况进行统计分析,包含加班时间( ...
- 个推数据统计产品(个数)iOS集成实践
2019独角兽企业重金招聘Python工程师标准>>> 最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新 ...
- 记住这个网站:服务器相关数据统计网站 http://news.netcraft.com/
http://news.netcraft.com/ 需要参考现在服务器相关数据,可以上这个网站. 当然google趋势也是一个可选得备案. 有一个数据统计更全面的: http://w3techs.co ...
- 基于springboot实现疫情数据统计系统
项目编号:BS-XX-038 本系统基于springboot实现开发,主要实现国内各省的疫情数据管理及实时统计,特点是利用图形报表实现展示各省确诊人数.疑似人数.隔离人数.治愈人数,利用不同的数据展示 ...
最新文章
- bundle包是什么意思_iOS开发里的Bundle是个啥玩意?!
- GuozhongCrawler系列教程 (4) StartContext具体解释
- pd.merge 结果出现重复_COUNTIFS函数技巧之去重复值计数(思路分析,过程详解)...
- gorm增删查改json_gorm 关联查询请教
- 密码篇——对称加密—DES
- LVS-DR+Keepalived 高可用群集
- JavaScript学习(四十二)—利用工厂模式创建对象以及工厂模式创建对象的不足
- mysql 存储过程的使用;
- 云计算之路:数据库服务器的选择——舍RDS取云服务器
- OpenGL学习笔记_简介_环境配置_创建一个窗口实例
- poi导入到mysql_POI解析Excel导入数据到mysql
- 数字逻辑电路课程设计报告
- Excel如何拆分字符串
- 计算机说课稿模板小学数学,小学数学优质说课稿模板
- 常见必问面试问题一_面试自我介绍3分钟、离职原因、期望薪资…(含面试技巧和答案)
- mysql ndb 命令_MySQL NDB Cluster环境启动与关闭
- 现在网站主流排版方式
- android 手机开门,1号社区APP"手机开不了门后的处理流程"
- 友价商城2019.2月最新版
- LaTeX字体设置(二)
热门文章
- C++/C--STL API查询及免费教程网站
- 算术编码原理与实现【转载】
- linux 系统错误表 和对应的数值
- vue监听字符串长度_Vue 的 computed 和 watch 的区别
- u盘弹出工具_mac怎么格式化u盘?
- 阵列卡直通模式和raid模式_DNF:希洛克Raid攻坚流程攻略
- css 下边框 90%,css怎么设置下边框
- php5向下兼容php4吗,PHP5与PHP4的区别小议
- 计算机丢失pcdsp.dll,计算机libcef.dll丢失
- linux搭建nfs