数据统计的视觉盛宴---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实现开发,主要实现国内各省的疫情数据管理及实时统计,特点是利用图形报表实现展示各省确诊人数.疑似人数.隔离人数.治愈人数,利用不同的数据展示 ...
最新文章
- FFmpegInterop 库在 Windows 10 应用中的编译使用
- spring boot项目配置RestTemplate超时时长
- 如何利用NLog输出结构化日志,并在Kibana优雅分析日志?
- java将数组中的数据修改,深度集成!
- mongodb ttl java,在mongoDB集合上设置ttl-是在应用程序中还是在shell中?
- 如何在hexo中支持Mathjax
- 最简单的基于FFmpeg的AVfilter例子(水印叠加)
- IIS32位,64位模式下切换
- 重学JAVA基础(三):动态代理
- 职场老实人的十大升职障碍
- 14.UNIX 环境高级编程--高级IO
- QtCreator导入yocto sdk记录
- Medoo个人修改版
- android activitygroup tab,android 之用ActivityGroup 实现Tab分页
- 南京工业大学计算机科学与技术学院保研外校,南京工业大学计算机科学与技术学院2018年招收推荐免试研究生章程...
- vscode如何配置java环境_VSCode 配置Java环境
- Java后端开发之JSON入门
- module_platform_driver()
- 32位系统装8g内存条?能用吗
- 激光测距仪传感器,基于EFM32控制器开发设计_方案
热门文章
- leetcode —— 1079. 活字印刷
- Multi-thread提高C++性能的编程技术笔记:单线程内存池+测试代码
- java version 和javac版本不一致_windows安裝多個版本的jdk,解決java-version和javac-version版本不一致的問題...
- 两种方法查看MFC源代码
- Golang指针,for循环
- SSH框架整合——基于注解
- 简单且有创意的python作品_适合练手的 14 个Python 小项目,趣味十足!
- .net core 调用c dll_C++ 调用C封装DLL库的两种方式
- 微服务启动顺序_基于华为云CSE微服务接口兼容常见问题
- Windows 10 开启有线无线802.1x脚本