WPF中使用DynamicDataDisplay画直方图应该怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中使用DynamicDataDisplay画直方图应该怎么做相关的知识,希望对你有一定的参考价值。

参考技术A 1.后台程序:加载一条随即曲线,横轴为时间
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Windows;
using System.IO;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Globalization;
using System.Diagnostics;
using System.Windows.Threading;
using Microsoft.Research.DynamicDataDisplay;
using Microsoft.Research.DynamicDataDisplay.DataSources;
using Microsoft.Research.DynamicDataDisplay.PointMarkers;
using Microsoft.Research.DynamicDataDisplay.Charts.Navigation;
namespace WpfApplication2

public partial class MainWindow :Window

Random random = new Random();
private DispatcherTimer timer = new DispatcherTimer();
CompositeDataSource compositeDataSource1;
CompositeDataSource compositeDataSource2;
EnumerableDataSource datesDataSource = null;
EnumerableDataSource numberOpenDataSource=null;
EnumerableDataSource numberClosedDataSource = null;
List vardatetime = new List();
int i = 0;
List numberOpen = new List();
List numberClosed = new List();
/*
int[] numberOpen = new int[100];
int[] numberClosed = new int[100];
*/
public MainWindow()

InitializeComponent();
// Loaded += new RoutedEventHandler(Window_Loaded);

private void Window1_Loaded(object sender,EventArgs e)

DateTime tempDateTime = new DateTime();
tempDateTime = DateTime.Now;
vardatetime.Add(tempDateTime);
numberOpen.Add(random.Next(40));
numberClosed.Add(random.Next(100));
datesDataSource.RaiseDataChanged();
numberOpenDataSource.RaiseDataChanged();
numberClosedDataSource.RaiseDataChanged();
i++;
// Window1_Loaded()
private void Window_Loaded(object sender,System.Windows.RoutedEventArgs e)

DateTime tempDateTime=new DateTime();
tempDateTime = DateTime.Now;
vardatetime.Add(tempDateTime);
numberOpen.Add(random.Next(40));
numberClosed.Add(random.Next(100));本回答被提问者和网友采纳

适用于 WPF 应用程序的 DynamicDataDisplay 和其他图表库

【中文标题】适用于 WPF 应用程序的 DynamicDataDisplay 和其他图表库【英文标题】:DynamicDataDisplay and other charting libraries for WPF apps 【发布时间】:2016-09-05 11:52:53 【问题描述】:

我正在寻找一个功能丰富的图表库,我已经看到了基础架构,但是当渲染很多数据点时它的性能不够,另一方面我看到 DynamicDataDisplay 是一个非常棒的库,但项目不是不再维护。您能否列出我应该注意的其他图表库。我从性能和可定制性标准来看。

【问题讨论】:

你试过 Telerik 了吗? 【参考方案1】:

您可以尝试下载LightningChart 的试用版,它是.Net 上最快且完全可配置的图表和数据可视化组件。示例包含在下载包中。 您还可以阅读有关基准的信息并亲自查看。

【讨论】:

【参考方案2】:

我使用ChartDirector 绘制了大约一百万个数据点的折线图,它可以在 1 秒内很好地绘制出来。但是,ChartDirector 是一个 Windows 窗体控件,因此在 WPF 中使用时需要托管在 WindowsFormsHost 控件中。您也可以只在 WPF 图像控件中将图表显示为图像,但随后您将失去用户交互功能(跟踪光标、拖动以缩放/滚动...)。

【讨论】:

以上是关于WPF中使用DynamicDataDisplay画直方图应该怎么做的主要内容,如果未能解决你的问题,请参考以下文章

WPF DynamicDataDisplay 画曲线图求助

适用于 WPF 应用程序的 DynamicDataDisplay 和其他图表库

wpf DynamicDataDisplay 如何设置Y轴从上到下显示是从小到大?

关于下载DynamicDataDisplay.dll后被默认锁定的问题

WPF调用Winform Chart控件绘图

plotter for windows 怎么创建图表