首页 > 其他分享 >界面组件Telerik UI for WPF可轻松实现直方图,让数据可视化更简单

界面组件Telerik UI for WPF可轻松实现直方图,让数据可视化更简单

时间:2023-05-30 10:47:41浏览次数:42  
标签:Telerik 直方图 可视化 ChartHistogramSource UI WPF

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成Visual Studio工具箱中。

Telerik UI for WPF | 下载试用

Telerik UI for WPF控件的RadChartView组件能够使您生成美观的图表可视化——点、条、线等等。本文将介绍新的直方图来实现数据可视化,你可以清楚地看到数据的峰值在哪里。

什么是直方图?

直方图是连续的条形图,每个条形的宽度在水平轴上有一个含义。最常见的是,直方图用于显示频率分布。

标准条形图和直方图之间的区别在于,条形图使用类别,而直方图的每个条的宽度都有一个数字范围。

Picture showing RadChartView's ScatterRangeBarSeries for WPF

补充知识:

Telerik UI for WPF R1 2023为RadChartView组件带来了一个新的可视化伙伴——ScatterRangeBarSeries。此系列类型允许您创建在水平轴和垂直轴上都具有数值范围的条形。但最重要的是,它允许我们创建直方图。

ScatterRangeBarSeries帮助文档将指导您如何设置范围柱图,但最简单的方法是使用ChartHistogramSource。

下一个示例演示如何设置一个数字集合,并将ChartHistogramSource指定为ScatterRangeBarSeries元素的ItemsSource。

开始编码
<Grid>
<telerik:ChartHistogramSource x:Name="histogramSource" Interval="3"/>
<telerik:RadCartesianChart Palette="Windows11">
<telerik:RadCartesianChart.Grid>
<telerik:CartesianChartGrid MajorLinesVisibility="XY"/>
</telerik:RadCartesianChart.Grid>
<telerik:RadCartesianChart.VerticalAxis>
<telerik:LinearAxis />
</telerik:RadCartesianChart.VerticalAxis>
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:LinearAxis MajorStep="{Binding ElementName=histogramSource, Path=ActualInterval}"
Maximum="24"/>
</telerik:RadCartesianChart.HorizontalAxis>
<telerik:ScatterRangeBarSeries ItemsSource="{Binding ElementName=histogramSource}"/>
</telerik:RadCartesianChart>
</Grid>
public MainWindow()
{
InitializeComponent();
var rnd = new Random(123456);
var caseResolutionTimes = new ObservableCollection<double>();
for (int resolutionTime = 0; resolutionTime <= 24; resolutionTime++)
{
int randomNumberOfCases = resolutionTime <= 8 || resolutionTime >= 15 ? rnd.Next(1, 5) : rnd.Next(1, 12);
for (int k = 0; k < randomNumberOfCases; k++)
{
caseResolutionTimes.Add(resolutionTime);
}

}
this.histogramSource.ItemsSource = caseResolutionTimes;
}

Picture showing the getting started example of RadChartView's ScatterRangeBarSeries for WPF

如果未设置Interval属性,则自动计算bins间隔。这要归功于Scott标准参考规则公式。

交换坐标轴

也许标准的竖条形对您来说还不够,您希望稍微改变一下可视化效果?然后,改变这些条形的方向。这是通过ChartHistogramSource的Orientation属性完成的。将其设置为Vertical将在垂直轴上应用间隔值,从而使条形图水平方向。

<telerik:ChartHistogramSource x:Name="histogramSource" Orientation="Vertical">

Picture showing RadChartView's ScatterRangeBarSeries with bars placed on the vertical axis

聚合函数

如果您需要调整每个条的结果,而不是仅仅计算其中的记录,那么聚合函数就派上了用场。您可以在一组内置函数之间进行选择,例如average, min, max, sum等。替换该函数需要重写ChartHistogramSource的GetValueAggregateFunction方法。

public class CustomChartHistogramSource : ChartHistogramSource
{
protected override ChartAggregateFunction GetValueAggregateFunction()
{
return new ChartAverageFunction();
}
}
不同大小的直方图

这是较为小众用到的场景,但如果您需要它,Telerik是提供的。在这种情况下,您不能使用ChartHistogramSource,但是您可以稍微调整ScatterRangeBarSeries。您可以手动设置所有ScatterRangeDataPoint属性,可以在Telerik WPF Demos应用程序的直方图示例中探索这种方法。

Picture showing RadChartView's ScatterRangeBarSeries for WPF and different sized bars


Telerik_KendoUI产品技术交流群:726377843    欢迎一起进群讨论

了解最新Kendo UI最新资讯,请关注Telerik中文网!

标签:Telerik,直方图,可视化,ChartHistogramSource,UI,WPF
From: https://www.cnblogs.com/AABBbaby/p/17442560.html

相关文章

  • Flutter三棵树系列之BuildOwner
    引言Flutter开发中三棵树的重要性不言而喻,了解其原理有助于我们开发出性能更优的App,此文主要从源码角度介绍Element树的管理类BuildOwner。是什么?BuildOwner是element的管理类,主要负责dirtyElement、inactiveElement、globalkey关联的element的管理。final_InactiveElements......
  • api框架和UI框架
    1.先建一个统一管理pytest插件的requirements.txt文件.然后安装这些第三方库(注意重复安装)2.再建一个项目根目录的pytest.ini文件配置各种参数和环境的各种基础路径base_url,便于主函数或者命令行在根目录下能找到用例并执行(注意编码格式)3.创建装饰器又叫全局性夹具conftest.py用......
  • ElementUI的form表单验证注意事项
    ElementUI的form表单验证注意事项1.踩过的坑,记录一下。验证表单时一直提示必填项未填写,实际已经填写了。2.el-form的正确使用流程el-form就是最外层的form表单,做验证有三个必填属性,不填写验证就会不正确。ref属性:相当于ID,稍后的提交按钮函数会用到它。:model:绑定要用......
  • [Quicker] 变量 表达式 插值
    插值($$开始)用于拼接文本,表达式($=)用于计算比较插值$$你好,{name},最后的访问路径:{lastPath},剪贴板文本为:{[cliptext]}$${词典变量["key3"]}$${词典变量.key3}$${列表变量[3]}$${列表变量.3}如果插值处理后,结果仍然以"$$"or"$="开始,则再次进行插值或......
  • Arduino开发环境搭建
    软件下载地址:安装板级驱动:C:\Users\88429\Documents\Arduino\hardware\espressif\arduino-esp32-masteresp32wroom32板级驱动为github的链接:安装库文件:旧版(18)库位置:安装位置//aduino//librariesor//hardware或者:c盘的x86programfiles/arduinno/libraries新版的library......
  • Unity,发布ios和Android的包,UGUI,异形屏适配问题。
    Unity,发布ios和Android的包,UGUI,异形屏适配问题。@TOC<hrstyle="border:solid;width:100px;height:1px;"color=#000000size=1">前言unity发布移动端需要做ui的适配,我们用的是UGUI,暂且提供一种我们自己的ui适配解决方案,包含异形屏的。<hrstyle="border:solid;width:100px;h......
  • UGUI图形系统
    UGUI图形系统1画布与事件系统1.1画布画布用于承载所有的UI元素。Canvas物体的Canvas组件RenderMode分为三种:第一种:ScreemSpaceOverlay模式,该模式下画布中的元素始终在前面。第二种:ScreemSpaceCamera模式,该模式下画布中的元素是否在前取决于它与物体的位置。第三种:Worl......
  • 剑指 Offer II 039. 直方图最大矩形面积
    题目链接:剑指OfferII039.直方图最大矩形面积方法:单调栈解题思路以直方图中的某一条为高的最大(面积)矩形的宽度为\(r-l+1\),其中\(r\)表示在其右边第一个小于(或等于)当前高度的下标,\(l\)表示在其左边第一个小于当前高度下标。\(l\),\(r\)可以利用单调栈在\(O(1)......
  • element ui 编辑页面 重新选择日期后页面显示的日期没反应
    问题:可以看到数据是实时更新了。加一个强制渲染显示正常了 this.$forceUpdate()方法会触发一次视图重新渲染,即使组件没有显式声明要更新数据或属性,也可以强制刷新页面。但是,由于它可能带来性能和其他副作用,因此应该尽量避免使用,并且只用于特定情况下的修复。......
  • IOS学习-UILabel
    自己学习用5个常用属性(1)font属性:设置显示文本的字体(2)size属性:设置显示文本的字体(3)backgroundColor属性:设置背景颜色UITextAlignmentLeftUITextAlignmentCenterUITextAlignmentRight(4)textColor:设置文本的颜色(5)adjustFontSizeToFitWidth:设置YES,表示文本自适应大......