-
2019-10-29 22:37:40
需求
为了实现一个完整软件系统,必须具备一些基本的数据呈现控件,例如曲线图、柱状图、饼图等。本次的业务需求为:利用LiveCharts展示后台模拟的温度变化。像Winform里面,微软为我们提供了比较完整的Chart控件,但是在WPF组件中,就没有找到类似的控件,它的意图是让我们自己去实现。我们应该对当下的代码共享时代环抱感激,迄今位置有很多面向WPF的第三方控件库,大部分都是免费开源的。例如:OxyPlot、ModernuiCharts......以及我们今天的主角——LiveCharts。这是一个具备动画效果的图表控件。
首先上效果:
环境
Windows 10
Visual Studio 2019
.Net Framework 4.7.2
Ninject
LiveCharts
LiveCharts.Wpf
实现
1.通过NuGet引入Ninject、LiveCharts.Wpf、LiveCharts程序包。
解决方案资源管理器-->项目(右键)-->管理NuGet程序包
在“浏览”中搜索:
Ninject
LiveCharts
LiveCharts.Wpf
并安装,完成之后如下图所示:
2.在XAML中引用LiveCharts控件的程序集。
在ChamberView.xaml文件的节点上添加对程序集的应用,如下:
<local:AnimationPageBaseView x:Class="Deamon.View.ChamberView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Deamon.View" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" Title="ChamberView">
其中 xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"就是命名空间的引用。
3.使用LiveCharts控件,值用绑定的方式传递到界面。
<lvc:CartesianChart Grid.Row="1" AnimationsSpeed="0:0:0.2" Hoverable="False" DataTooltip="{x:Null}"> <lvc:CartesianChart.Series> <lvc:LineSeries Values="{Binding ChartValues}" PointGeometry="{x:Null}" LineSmoothness="0" StrokeThickness="3" Stroke="#12B1AD" Fill="#E6F7F8"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis LabelFormatter="{Binding DateTimeFormatter}" MaxValue="{Binding AxisMax}" MinValue="{Binding AxisMin}" ShowLabels="False" Unit="{Binding AxisUnit}"> <lvc:Axis.Separator> <lvc:Separator Step="{Binding AxisStep}" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis ShowLabels="false" /> </lvc:CartesianChart.AxisY> </lvc:CartesianChart>
如上所示,我们这里有一些属性是通过绑定来赋值的。因此接下来我们来完善这块工作。
4.数据绑定与刷新
4.1定义一个数据点结构——MeasureModel
/// <summary> /// 测量模型 /// </summary> public class MeasureModel { /// <summary> /// X 轴数据 /// </summary> public DateTime DateTime { get; set; } /// <summary> /// Y 轴数据 /// </summary> public double Value { get; set; } }
4.2定义界面相关的视图模型ViewModel
定义通知属性、普通属性和命令以及构造时初始化等工作。
using Deamon.Util.DI; using LiveCharts; using LiveCharts.Configurations; using System; using System.Threading; using System.Threading.Tasks; namespace Deamon.ViewModel { /// <summary> /// 房间信息 /// </summary> public class ChamberViewModel : BaseViewModel { /// <summary> /// 默认构造函数 /// </summary> public ChamberViewModel() { // 初始化创建一个 X Y 轴上数据显示的图表,并确定 X Y 轴的数据结构 var mapper = Mappers.Xy<MeasureModel>() .X(model => model.DateTime.Ticks) .Y(model => model.Value); // 配置这个图表,可以被其他地方(特定的方式)使用 Charting.For<MeasureModel>(mapper); // 初始化测量的数据集 ChartValues = new ChartValues<MeasureModel>(); // 设置 X 轴显示的标签格式 DateTimeFormatter = value => new DateTime((long)value).ToString("mm:ss"); // 设置图表的其他相关属性 AxisStep = TimeSpan.FromSeconds(1).Ticks; AxisUnit = TimeSpan.TicksPerSecond; SetAxisLimits(DateTime.Now); // 默认情况下开始数据刷新 IsReading = false; this.InjectStopOnClick(); } #region 公共命令 /// <summary> /// 显示导航栏命令 /// </summary> public RelayCommand ShowBarCommand { get { return new RelayCommand(() => { IoC.Get<ApplicationViewModel>().HasNavigationBar = true; }); } } /// <summary> /// 显示导航栏命令 /// </summary> public RelayCommand ReadingCommand { get { return new RelayCommand(() => { this.InjectStopOnClick(); RaisePropertyChanged(nameof(ReadingCommandText)); }); } } #endregion #region 属性 /// <summary> /// 缓存的测量数据 /// </summary> public ChartValues<MeasureModel> ChartValues { get; set; } /// <summary> /// 时间格式化器 /// </summary> public Func<double, string> DateTimeFormatter { get; set; } /// <summary> /// X 轴上每个数据的等距跳变(时)长 /// </summary> public double AxisStep { get; set; } public double AxisUnit { get; set; } /// <summary> /// 正在读取 /// </summary> public bool IsReading { get; set; } /// <summary> /// 控制按钮的文本 /// </summary> public string ReadingCommandText { get { return IsReading ? "Stop" : "Start"; } } private string curvalue; /// <summary> /// 当前值 /// </summary> public string Curvalue { get { return curvalue; } set { curvalue = value; RaisePropertyChanged(nameof(Curvalue)); } } private double axisMax; /// <summary> /// X轴最大 /// </summary> public double AxisMax { get { return axisMax; } set { axisMax = value; RaisePropertyChanged(nameof(AxisMax)); } } private double axisMin; /// <summary> /// X轴最小 /// </summary> public double AxisMin { get { return axisMin; } set { axisMin = value; RaisePropertyChanged(nameof(AxisMin)); } } #endregion /// <summary> /// 模拟数据采集 /// </summary> public void Read() { while (IsReading) { Thread.Sleep(400); var now = DateTime.Now; double value = Math.Round(new Random().Next(10, 11) + (1 * new Random().NextDouble()), 2); ChartValues.Add(new MeasureModel { DateTime = now, Value = value }); SetAxisLimits(now); Curvalue = value + "℃"; // 只保留160个数据,满了就把前面的数据移除 if (ChartValues.Count > 160) ChartValues.RemoveAt(0); } IsReading = false; } /// <summary> /// 设置 X 轴上呈现的时间范围 /// </summary> /// <param name="now"></param> private void SetAxisLimits(DateTime now) { // X轴显示区域的最大时间 AxisMax = now.Ticks + TimeSpan.FromSeconds(1).Ticks; // X轴显示区域的最大时间 AxisMin = now.Ticks - TimeSpan.FromSeconds(8).Ticks; } /// <summary> /// 根据标识是否启动采集 /// </summary> public void InjectStopOnClick() { IsReading = !IsReading; if (IsReading) { Task.Factory.StartNew(Read); } } } }
4.3数据绑定和界面完善
<local:AnimationPageBaseView x:Class="Deamon.View.ChamberView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Deamon.View" xmlns:vm="clr-namespace:Deamon.ViewModel" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" DataContext="{Binding ChamberVM, Source={ x:Static vm:ViewModelLocator.Locator}}" Title="ChamberView"> <Grid Background="#FF033F42"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> <Button VerticalAlignment="Center" Style="{StaticResource OnlyTextButton}" Command="{Binding ReadingCommand}" Content="{Binding ReadingCommandText}"/> </StackPanel> <DockPanel Grid.Row="1"> <Grid Width="300" Height="200"> <Border CornerRadius="5" Background="White"/> <Grid Margin="5"> <Grid.RowDefinitions> <RowDefinition Height="60"/> <RowDefinition/> </Grid.RowDefinitions> <StackPanel Margin="5 0 0 0" VerticalAlignment="Center"> <TextBlock Text="NO.607" FontSize="22" VerticalAlignment="Center" Foreground="#6C757D"/> <TextBlock Text="Temperature:" FontSize="15" Foreground="#6C757D"/> </StackPanel> <TextBlock Text="{Binding Curvalue}" Margin="10 5 0 0" Grid.Row="1" FontFamily="Consolas" FontSize="22" Foreground="#6C757D" FontWeight="Bold" /> <lvc:CartesianChart Grid.Row="1" AnimationsSpeed="0:0:0.2" Hoverable="False" DataTooltip="{x:Null}"> <lvc:CartesianChart.Series> <lvc:LineSeries Values="{Binding ChartValues}" PointGeometry="{x:Null}" LineSmoothness="0" StrokeThickness="3" Stroke="#12B1AD" Fill="#E6F7F8"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis LabelFormatter="{Binding DateTimeFormatter}" MaxValue="{Binding AxisMax}" MinValue="{Binding AxisMin}" ShowLabels="False" Unit="{Binding AxisUnit}"> <lvc:Axis.Separator> <lvc:Separator Step="{Binding AxisStep}" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis ShowLabels="True" /> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> </Grid> </Grid> </DockPanel> </Grid> </local:AnimationPageBaseView>
Over
每次记录一小步...点点滴滴人生路...
更多相关内容 -
WPF 数据可视化 大屏展示 实现地图仿echarts模拟迁移效果 Telerik图表 仪表盘
2019-04-03 08:49:07分数已被csdn修改,我也无法修改分数,过高无法下载请...WPF 数据可视化 大屏展示 实现地图仿echarts模拟迁移效果 Telerik图表 仪表盘 效果图https://blog.csdn.net/shishuwei111/article/details/79486365#comments -
WPF 数据可视化 大屏展示 实现地图仿echarts模拟迁移效果 Telerik图表 仪表盘.rar
2022-04-01 21:15:32WPF 数据可视化 大屏展示 实现地图仿echarts模拟迁移效果 Telerik图表 仪表盘.rar -
WPF-Diagram-Designer:WPF图表设计器源代码
2021-03-24 05:57:57WPF-Diagram-Designer:WPF图表设计器源代码 -
CaliDiagram:基于 Caliburn.Micro 框架构建的 WPF 图表设计器
2021-06-03 11:00:59RaftDemo - 用于可视化 raft 算法的 WPF 应用程序,需要分为两个项目。 #####需要做什么: 改进网络模型,使其可以正确模拟 tcp/ip 之类的消息传递, 找出actor系统的基本元素(ClientActor、ServerActor等... -
C# WPF图表控件之ChartControl用法指南①
2021-12-10 00:00:06“引言部分,总领全篇文章的中心内容。” WPF的DevExpress ChartControl是一种功能强大的可视化工具,可帮助您将数据显示为二维或伪三维条形图、区域、线和许多其他形...“ 引言部分,总领全篇文章的中心内容。”
WPF的DevExpress ChartControl是一种功能强大的可视化工具,可帮助您将数据显示为二维或伪三维条形图、区域、线和许多其他形式。
01
—
将数据绑定到Chart Series
Step 1. 创建新项目并添加图表
创建一个新的WPF应用程序项目。将其命名为第1课BindCharttoData。
将ChartControl组件从DX.21.2:数据和分析工具箱部分拖动到主窗口。
右键单击图表控件并在关联菜单中选择Layout | Reset All 以使图表填充整个窗口。
新创建的图表包含一个空白的并排条形图和一个图例。主窗口的标记应如下所示:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Lesson1BindChartToData" xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts" x:Class="Lesson1BindChartToData.MainWindow" mc:Ignorable="d" Title="MainWindow" Height="315" Width="560"> <Grid> <dxc:ChartControl> <dxc:ChartControl.Legends> <dxc:Legend/> </dxc:ChartControl.Legends> <dxc:XYDiagram2D> <dxc:BarSideBySideSeries2D DisplayName="Series 1"/> </dxc:XYDiagram2D> </dxc:ChartControl> </Grid> </Window>
对以下库的引用将自动添加到项目中:
DevExpress.Data.v21.2
DevExpress.Xpf.Core.v21.2
DevExpress.Charts.v21.2.Core
DevExpress.Xpf.Charts.v21.2
DevExpress.Mvvm.v21.2
DevExpress.Xpf.Printing.v21.2
DevExpress.Printing.v21.2.Core
注意:
这些引用是从全局程序集缓存(GAC)中选择的。要在本地复制它们或在以后的产品安装中包含它们,请使用以下目录:
C:\ProgramFiles(x86)\DevExpress 21.2\Components\Bin\Framework\
Step 2. 准备数据模型
您可以将图表绑定到数据库、XML文件或运行时创建的数据。数据源应该实现IEnumerable, IListSource 或者他们的后代。有关如何用数据填充图表的更多信息,请参阅提供数据部分。在本主题中,您将图表绑定到ObservableCollection<T>.
使用DataPoint类实现开发数据模型:
using System.Collections.ObjectModel; using System.Windows; namespace Lesson1BindChartToData { public class DataPoint { public string Argument { get; set; } public double Value { get; set; } public static ObservableCollection<DataPoint> GetDataPoints() { return new ObservableCollection<DataPoint> { new DataPoint { Argument = "Asia", Value = 5.289D}, new DataPoint { Argument = "Australia", Value = 2.2727D}, new DataPoint { Argument = "Europe", Value = 3.7257D}, new DataPoint { Argument = "North America", Value = 4.1825D}, new DataPoint { Argument = "South America", Value = 2.1172D} }; } } }
Step 3. 添加ViemModel
使用以下代码实现MainWindowViewModel类:
using System.Collections.ObjectModel; using System.Windows; namespace Lesson1BindChartToData { public class MainWindowViewModel { public ObservableCollection<DataPoint> Data { get; private set; } public MainWindowViewModel() { this.Data = DataPoint.GetDataPoints(); } } }
Step 4. 指定Data Context
Step 5. 绑定数据给图表
单击图表控件的智能标记。指定ChartControl.DataSource属性,如下图所示:
Step 6. 用数据填充序列
指定应为系列点参数和值提供值的数据源字段。
将序列的series.ArgumentDataMember属性设置为参数。
将序列的series.ValueDataMember属性设置为Value。
Step 7. 自定义图表
指定序列名称
将Series.DisplayName属性设置为年度统计信息。显示名称标识图例中的系列。
添加图表标题并自定义其位置
单击图表控件标题属性的省略号按钮以调用标题集合编辑器。使用“添加”按钮创建新标题并将其添加到图表中。
将TitleBase.HorizontalAlignment属性设置为“中心”。
定义标题库。按地区销售的内容。单击“确定”。
配置十字光标的选项
要自定义十字线选项,请单击ChartControl.CrosshairOptions属性的“新建”按钮以创建十字线选项实例。
启用以下属性:
CrosshairOptions.ShowArgumentLabels
CrosshairOptions.ShowValueLabels
CrosshairOptionBase.ShowValueLine
将XYSeries2D.Crosshair LabelPattern设置为$V:f2}M。
02
—
Results
运行项目以查看结果。
生成的代码如下所示:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Lesson1BindChartToData" xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" x:Class="Lesson1BindChartToData.MainWindow" mc:Ignorable="d" Title="MainWindow" Height="400" Width="650"> <Window.DataContext> <local:MainWindowViewModel/> </Window.DataContext> <Grid> <dxc:ChartControl DataSource="{Binding Data}"> <dxc:ChartControl.CrosshairOptions> <dxc:CrosshairOptions ShowArgumentLabels="True" ShowValueLabels="True" ShowValueLine="True"/> </dxc:ChartControl.CrosshairOptions> <dxc:ChartControl.Titles> <dxc:Title Content="Sales by Regions" HorizontalAlignment="Center"/> </dxc:ChartControl.Titles> <dxc:ChartControl.Legends> <dxc:Legend/> </dxc:ChartControl.Legends> <dxc:XYDiagram2D> <dxc:BarSideBySideSeries2D DisplayName="Annual Statistics" ArgumentDataMember="Argument" ValueDataMember="Value" CrosshairLabelPattern="${V:f2}M"/> </dxc:XYDiagram2D> </dxc:ChartControl> </Grid> </Window>
C# CODE
using System.Collections.ObjectModel; using System.Windows; namespace Lesson1BindChartToData { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } public class MainWindowViewModel { public ObservableCollection<DataPoint> Data { get; private set; } public MainWindowViewModel() { this.Data = DataPoint.GetDataPoints(); } } public class DataPoint { public string Argument { get; set; } public double Value { get; set; } public static ObservableCollection<DataPoint> GetDataPoints() { return new ObservableCollection<DataPoint> { new DataPoint { Argument = "Asia", Value = 5.289D}, new DataPoint { Argument = "Australia", Value = 2.2727D}, new DataPoint { Argument = "Europe", Value = 3.7257D}, new DataPoint { Argument = "North America", Value = 4.1825D}, new DataPoint { Argument = "South America", Value = 2.1172D} }; } } }
原文链接:https://docs.devexpress.com/WPF/9757/controls-and-libraries/charts-suite/chart-control/getting-started/lesson-1-bind-chart-series-to-data#results
翻译小编:mm1552923
公众号:dotNet编程大全
-
OxyPlot.Wpf 图表控件使用备忘
2021-05-23 00:01:10OxyPlot.Wpf 图表控件使用备忘目录OxyPlot.Wpf 图表控件使用备忘一、OxyPlot.Wpf 控件信息二、基本概念(一) PlotView 和 Plot(二) PlotM...OxyPlot.Wpf 图表控件使用备忘
目录
OxyPlot.Wpf 图表控件使用备忘
一、OxyPlot.Wpf 控件信息
二、基本概念
(一) PlotView 和 Plot
(二) PlotModel
(三) Axes
(四) Series
(五) Tracker
三、样式设置
(一) 效果对比
(二) 图表边框和数据线条样式
(三) 坐标轴样式
(四) 自定义 Tracker
四、装配和数据填充
五、示例代码
独立观察员 2021 年 5 月 21 日
一、OxyPlot.Wpf 控件信息
GitHub:https://github.com/oxyplot/oxyplot
官方文档地址:https://oxyplot.readthedocs.io/en/latest/index.html
使用版本:NuGet 版 2.0.0
参考文章:《OxyPlot 在 wpf 中绘制实时动态曲线【更新 2.0 去掉 Smooth 属性】》
二、基本概念
(一) PlotView 和 Plot
界面上有两种使用方法:
(1)使用 PlotView(界面简单,设置都在代码中)
(2)使用 Plot (坐标轴、线条等都在界面上设置)
我们使用第一种方法。
(二) PlotModel
PlotView 的 Model 属性需绑定一个 PlotModel 对象,它包含了整个图表的各种信息,比如边框、数据线条、坐标轴、图示 等。
绑定的属性可按如下定义:
(三) Axes
Axes 就是坐标轴集合,可分别添加四个方向的坐标轴,如果没有自行添加,默认会有一个底部的横坐标和一个左侧的纵坐标。
坐标轴也有好几种类型:
本文使用的是 LinearAxis:
(四) Series
Series 代表了一组数据,有很多种类型:
本文以 线条(LineSeries)为例:
注释部分是指定平滑模式,开启平滑模式后,两点之间以曲线相连,性能会降低;
关闭平滑模式,两点之间以直线相连,也就是形成折线图。
(五) Tracker
Tracker 指的是可浮现的线条上点的信息框,可以理解为 ToolTip 。Tracker 是属于 Series 的。
默认是按住鼠标左键,然后移动到点上,显示 Tracker 。
可使用如下代码改为鼠标移上就显示(其中 _PlotView 为 PlotView 控件对象):
三、样式设置
(一) 效果对比
默认样式如下(不包括标题和坐标轴标题):
Tracker 默认样式如下:
可通过设置,改为如下样式:
(二) 图表边框和数据线条样式
图表边框四边的宽度可分别设置,某一边的边框设为 0 时,相应的坐标轴线样式才有效果。不过坐标轴线条好像有点 Bug,所以此处还是使用边框线来替代坐标轴线。
(三) 坐标轴样式
分别设置左侧和底部的坐标轴,可进行缩放、平移、刻度线、网格线的开关和设置等。
(四) 自定义 Tracker
自定义 Tracker 在界面上设置,通过设置 Tracker 的控件模板来完成:
更多样式可参考该控件库的示例代码:
四、装配和数据填充
样式设置完成后,将坐标轴和线条装入 PlotModel 中:
数据填充到线条的 Points 中,ResetAllAxes () 方法可重置坐标轴,InvalidatePlot () 方法刷新数据:
五、示例代码
代码地址:https://gitee.com/dlgcy/DLGCY_OxyPlotTester
发行版下载:https://gitee.com/dlgcy/DLGCY_OxyPlotTester/releases
说明:该项目使用 WPFTemplate 搭建,如果要克隆代码,注意需进行 Git 子模块拉取操作。
程序界面:
WPF
【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF
WPF 使用 Expression Design 画图导出及使用 Path 画图
解决 WPF 绑定集合后数据变动界面却不更新的问题(使用 ObservableCollection)
WPF 消息框 TextBox 绑定新数据时让光标和滚动条跳到最下面
WPF 让一组 Button 实现 RadioButton 的当前样式效果
-
ChartX - 基于WPF的数据可视化图表程序集
2013-12-26 20:04:50数据可视化多点连线
/// <summary> /// 将若干个数据点用线连接的图层 /// 1)无抽点算法,所有的点都会被绘制 /// 2)可以绘制多条数据曲线 /// 3)多条数据曲线的长度可以不同 /// </summary> public class PointDataLayer : BaseLayer2D
连续数据
/// <summary> /// 将相邻两点以直线连接的方式表达连续数据的图表 /// * 连续数据的长度如果很长,将分段抽取最大最小值的办法予以表现 /// * 可以显示多条长度相同的连续数据 /// </summary> public class SerialDataLayer : BaseLayer2D
实时波形
/// <summary> /// * 最新(进入队列)数据显示在视图右侧 /// * 无数据压缩(视图将绘制所有数据) /// * 不能显示多组数据 /// </summary> public class RealTimeDataLayer : BaseLayer2D
三维视图
/// <summary> /// 功能(数据)3D可视化视图的基类,基于Viewport3D /// </summary> public class BaseLayer3D : Viewport3D, IFeatureLayer
视图叠加
视频视图
/// <summary> /// 将通过AForge获取的实时视频图像(GDI的Bitmap对象)在一个Image控件实时更新和显示 /// </summary> public class VideoLayer_WPF : VideoLayer /// <summary> /// 将通过AForge获取的实时视频图像(GDI的Bitmap对象)在一个PictureBox控件实时更新和显示 /// </summary> public class VideoLayer_WinForm : VideoLayer
MORE...
-
WPF(一)——可视化软件草纲
2018-11-05 17:49:46先刨个坑,这是在做wpf一个可视化软件时查得一些资料。 https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/graphics-multimedia/animation-overview 1、WPF Page之间跳转时传参:... -
Visifire for SilverlightWPF试用版:一款功能强大的支持WPF和silverlight平台的图表和仪表控件,支持多种...
2021-07-15 23:28:14是一款强大的数据可视化控件,提供多种功能的图表和仪表,支持图表和仪表实时显示和更新,可以用于Silverlight和WPF平台下,支持 .Net 3.5 SP1以及4.0.利用该控件开发人员可以在几分钟内就设计出强大的图表应用程序... -
grafana 可视化
2022-05-12 10:43:45grafana是一款开源的、基于web的可视化工具 展示方式:客户端图表、面板插件 数据源可以来自于各种源,如prometheus 安装grafana,并启动服务 [root@prometheus ~]# cd prometheus_soft/ [root@prometheus ... -
WPF调用 ECharts 显示图表
2018-09-04 20:58:21ECharts:来自百度 ,一个使用 JavaScript 实现的免费开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库ZRender,... -
ChartPlotter:人人数据可视化-开源
2021-05-29 08:17:46ChartPlotter 是 DSTK 3 的一部分,网址为:https://sourceforge.net/projects/dstk3/?source=directory DSTK Engine 在那里是开源... Chart Plotter 有助于与 Plotly JS 交互,并通过点击鼠标生成和创建图表和仪表板。 -
在WPF中嵌入WebBrowser可视化页面
2021-06-12 17:06:03涉及数据可视化就非常的累赘了,当然大神也一定有,只不过面向大多数人,还是通过网页来实现,有的时候不想把这两个功能分开,一般会是客户的原因,所以我们打算在WPF中嵌入WebBrowser,然后使用ECharts 完成复杂的... -
可视化 1 万亿个数据点,被图表控件LightningChart .NET做到了
2022-06-16 16:39:27LightningChart.NET是一个与 WinForms、UWP 和 WPF 兼容的数据可视化组件(图表库)。经过深入开发,可以满足要求苛刻的应用程序开发人员和最终用户的最高性能要求。 重大突破 几年前,LightningChart .NET打破了... -
QuickDiagram:用于C#的代码可视化工具,用于快速探索,导航和记录源代码结构和关系。 集成到Visual ...
2021-02-05 07:24:07从源代码添加类型或整个层次结构到图表以可视化它们之间的关系。 使用该图发现相关类型。 快速浏览 从图中跳转到相关的源代码段。 带有图表的文档 将图表复制/粘贴到文档中。 新闻 此工具的下一版本将不再免费。 ... -
LightningChart数据可视化工具图形控件教程6-ViewXY 2D图表
2021-03-23 10:36:31ViewXY视图可以通过Cartesian坐标系、XY图表格式,展现出各种的点线系列、区域系列、高低系列、强度系列、热图系列、条棒系列、带、线系列光标等。系列 会关联到X和Y轴,使用指定的轴的值域范围。 ViewXY对象树 ... -
LightningChart在WPF和Winforms中的XY图表
2021-03-15 17:42:56LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学,工程,医学,航空,贸易,能源和其他领域的体绘制功能。 XY图表 XY图表(ViewXY)允许以不同方式和格式显示二... -
C# 之 WPF 统计图表开发方案
2019-04-17 14:59:00C# 之 WPF 统计图表开发文档一、前言二、环境配置1...LiveCharts, 官网:https://lvcharts.net 是一款简单,灵活,交互式和强大的 DOTNET数据可视化图表控件,内置多种统计图表,可满足本项目的需求。 二、环境配置... -
使用各种 WPF Chart图表控件、插件的经历回顾与总结
2018-09-03 16:55:31使用各种 WPF Chart图表控件、插件的经历回顾与总结 --不愿透露姓名的客户提... -
超酷炫.NET数据可视化组件LightningChart - 专业图形视图应用集锦
2021-01-22 14:30:53LightningChart Ultimate SDK是Arction Ltd公司开发的.NET和Windows 2D和3D测量、管理和研发数据可视化SDK。它是一个能全面实现GPU加速(Direct3D)和性能优化的数据控件,大规模数据都可以通过它以二维XY图表、三维... -
Arction .NET数据可视化图表LightningChart完全兼容Windows 11
2021-07-11 14:12:21微软即将发布Windows 11,将是取代其主流桌面操作系统...出于这个原因,LightningChart® 团队决定在Windows 11正式发布之前(进一步在2022年初)进一步测试Arction用于.NET的主要 LightningChart® 数据可视化高. -
LightningChart为外汇衍生品交易商提供数据可视化图表支持
2020-12-18 15:48:22Arction的LightningChart图表控件在外汇和外汇衍生品交易中的应用。 FXVolQuant作为外汇交易商的前沿数据驱动平台,由kuma.capital开发和维护,是外汇和外汇衍生品交易商的数据驱动洞察,分析和战略警报平台。 ... -
LightningChart数据可视化工具图形控件教程2-开发人员Demo中心
2021-03-16 14:13:18这其中包括有四类演示应用程序,各自对应不同的图表版本(WinForms、WPF 无绑定、WPF 部分绑定和WPF 全绑定,关于图表版本更多信息,请参阅《LightningChart数据可视化图形控件教程1-安装教程》... -
什么是LiDAR数据可视化?
2022-02-17 16:11:14Lightningchart的 LiDAR 方法属于复杂级别的数据可视化,它广泛用于对精度要求苛刻的行业,例如地形或地图绘制的 3D 数据。但激光雷达的使用更加的广泛,因为它还可以用于车辆自动控制和空间探索的导航监控。 -
Arction LightningChart图表控件在WPF和WinForms平台中的3D视图图像
2021-02-05 09:23:47LightningChart.NET完全由...3D图表(View3D)可视化3D空间中的数据。3D模型可以通过各种方式缩放,旋转和照亮。可以将不同的系列类型放置到同一3D视图中以进行组合的可视化。 下图显示了显示墙和轴的基本3D图。 Point -
Arction金融交易数据可视化图表库插件LightningChart®Trader图表示例
2021-01-07 18:04:58LightningChart®Trader图表库简单易用,用于构建交易和金融应用程序。 可以将TradingChart控件直接放置到应用程序UI中,它提供了简单明了的API,特别是为技术分析而设计。 Trader图表具有多种内置功能,例如颜色...