数据统计的视觉盛宴—visifire charts

数据统计的视觉盛宴—visifire charts上文中我给大家展示了微软提供的开源toolkit中图表控件的效果和使用,但是与fusioncharts相比效果还是显得逊色。本篇将介绍另一种charts控件库—visifirecharts。visifire控件库不仅涵盖wpf/silverlight,还有windowsphone的版本(由此可见将wpf的代码移植到silverlight和windowsphone上是一个非…

大家好,又见面了,我是你们的朋友全栈君。

 

上文中我给大家展示了微软提供的开源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>

image image image

image

定制设置横向/纵向轴线

这也是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>

image

使用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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162806.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Dashboard介绍

    Dashboard介绍

    2021年8月20日
    86
  • android项目实战手机安全卫士_恢复2345安全卫士主界面

    android项目实战手机安全卫士_恢复2345安全卫士主界面主界面的布局文件

    2022年9月23日
    2
  • 单向链表之删除节点(C语言实现)「建议收藏」

    单向链表之删除节点(C语言实现)「建议收藏」链表的创建查看删除节点就是将某一节点从链中摘除。将待删节点与其前一节点解除联系(中间或尾部)或本阶段删除(头节点),并释放相应空间(free)。删除的第一步是找到要删除的节点,同链表查找,如果找不到或链表为空,提示未找到,找到后根据情况删除此节点。删除节点两种情况:第一个节点,后面节点。步骤:1、链表为空:不用删除2、链表不为空:先循环找要删除的节点1)找到了1>找

    2025年8月5日
    2
  • cad怎么删除不需要的部分_cad怎样打印局部图

    cad怎么删除不需要的部分_cad怎样打印局部图1、输入cad修建命令tr,然后按两下回车(记得是两下哦)。2、此时用鼠标点击想要抄修剪的部分就可以把cad多余百的线删除掉了。3、此时会看到蓝色线和紫色线还是多余,我们度选择删除工具,cad删除

    2022年8月1日
    6
  • Pycharm连接并调用服务器「建议收藏」

    Pycharm连接并调用服务器「建议收藏」Pycharm可以与服务器建立连接,把相应的项目同步到服务器上,并且可以通过Pycharm直接使用服务器的解释器运行相应程序,实现Pycharm编程,服务器运行的效果。具体步骤如下:1.建立一个服务器连接Pycharm的“Tools”-》“Deployment”-》“Configuration”2.创建一个SFTP3.为该项目添加一个SSH解释器。因为前面已经添加好了服务器连接,所以这里直接选择已经设置好的就可以,如果没有已经设置好的,可以重新添加。配置好SSH之后,选择Next,设置本地项目

    2022年8月28日
    1
  • 一个普通java程序员的10年…泪奔 o(╥﹏╥)o o(╥﹏╥)o[通俗易懂]

    一个普通java程序员的10年…泪奔 o(╥﹏╥)o o(╥﹏╥)o[通俗易懂]大家好,我是曹尼玛,是一个很普通java程序员,今天看了下日期,转眼间,毕业9年,工作10年了,经历比较多,受伤比较多,收获比较多,改变也很多,对未来也有一些规划,对java新人有一些中肯的建议…过去10年的java人生回顾人生回顾,酸甜苦辣,蛋定就好…我的原生家庭和学业本D89年出生在沿海地区的一个普通农村家庭,一直供我上学,感恩父母!上的是农村小学,乡镇初中,乡镇高中,学习成绩中上,加上教育一般,以及我智商一般,即使努力,也就考了个破本科,选了个不用拼爹的专业-计算机科学与技术。.

    2022年6月10日
    87

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号