zoukankan      html  css  js  c++  java
  • 数据可视化新方式,SankeyDiagramControl类的使用你不能错过!(Part 1)

    下载DevExpress v20.2完整版

    DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

    命名空间:DevExpress.XtraCharts.Sankey

    程序集:DevExpress.XtraCharts.v20.2.UI.dll

    声明

    C#

    [SerializationContext(typeof(SankeySerializationContext))]
    public class SankeyDiagramControl :
    Control,
    ISankeyContainer,
    IToolTipControlClient,
    ISupportLookAndFeel,
    ISankeyRenderProvider,
    IChartRenderProvider,
    IPrintable,
    IBasePrintable

    VB.NET

    <SerializationContext(GetType(SankeySerializationContext))>
    Public Class SankeyDiagramControl
    Inherits Control
    Implements ISankeyContainer,
    IToolTipControlClient,
    ISupportLookAndFeel,
    ISankeyRenderProvider,
    IChartRenderProvider,
    IPrintable,
    IBasePrintable
    注释

    Sankey图表描述系统中实体(也称为节点)之间的转移或流,该图可以帮助您找到对流程最重要的贡献。

    下图显示了图元素:

    DevExpress WinForms使用教程:Sankey Diagram控件

    每个链接都连接源节点和目标节点,并具有分配的值-权重,链接的宽度与其重量成正比。

    添加到项目

    将SankeyDiagramControl组件从Toolbox拖放到窗体中,来将Sankey图添加到项目中。

    DevExpress WinForms使用教程:Sankey Diagram控件

    这会将对以下程序集的引用添加到项目中:

    • DevExpress.Charts.v20.2.Core.dll
    • DevExpress.Data.Desktop.v20.2.dll
    • DevExpress.Data.v20.2.dll
    • DevExpress.Printing.v20.2.Core.dll
    • DevExpress.XtraPrinting.v20.2.dll
    • DevExpress.Utils.v20.2.dll
    • DevExpress.Utils.v20.2.Core.dll
    • DevExpress.XtraBars.v20.2.dll
    • DevExpress.XtraCharts.v20.2.dll
    • DevExpress.XtraCharts.v20.2.UI.dll
    • DevExpress.XtraCharts.v20.2.Wizard.dll
    • DevExpress.XtraEditors.v20.2.dll

    绑定到数据

    使用DataSource属性将控件绑定到数据源,您可以为该属性分配一个实现以下任何接口的对象:IList,IListSource或IBindingList。

    然后指定存储用于源节点、目标节点和权重数据的数据成员名称:

    • SourceDataMember - 指定包含源节点标签的数据成员的名称。
    • TargetDataMember - 指定包含目标节点标签数据成员的名称。
    • WeightDataMember (Optional) - 指定包含链接权重的数据成员名称,如果未指定WeightDataMember属性,则权重等于1。

    C#

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using DevExpress.XtraCharts.Sankey;
    namespace SankeySample {
    public partial class Form1 : Form {
    public Form1() {
    InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e) {
    sankeyDiagramControl1.DataSource = GetSankeyItems();
    sankeyDiagramControl1.SourceDataMember = "Source";
    sankeyDiagramControl1.TargetDataMember = "Target"; 
    sankeyDiagramControl1.WeightDataMember = "Value";
    sankeyDiagramControl1.Titles.Add(new SankeyTitle { Text = "Export/Import" });
    }
    List<SankeyItem> GetSankeyItems() {
    List<SankeyItem> data = new List<SankeyItem> {
    new SankeyItem { Source = "France", Target = "UK", Value = 53 },
    new SankeyItem { Source = "Australia", Target = "UK", Value = 72 },
    new SankeyItem { Source = "France", Target = "Canada", Value = 81 },
    new SankeyItem { Source = "China", Target = "Canada", Value = 96 },
    new SankeyItem { Source = "UK", Target = "France", Value = 61 },
    new SankeyItem { Source = "Canada", Target = "France", Value = 89 },
    };
    return data;
    }
    }
    public class SankeyItem {
    public string Source { get; set; }
    public string Target { get; set; }
    public double Value { get; set; }
    }
    }

    VB.NET

    Imports System
    Imports System.Collections.Generic
    Imports System.Windows.Forms
    Imports DevExpress.XtraCharts.Sankey
    
    Namespace SankeySample
    Public Partial Class Form1
    Inherits Form
    
    Public Sub New()
    InitializeComponent()
    End Sub
    
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    sankeyDiagramControl1.DataSource = GetSankeyItems()
    sankeyDiagramControl1.SourceDataMember = "Source"
    sankeyDiagramControl1.TargetDataMember = "Target" 
    sankeyDiagramControl1.WeightDataMember = "Value"
    sankeyDiagramControl1.Titles.Add(New SankeyTitle With {
    .Text = "Export/Import"
    })
    End Sub
    
    Private Function GetSankeyItems() As List(Of SankeyItem)
    Dim data As List(Of SankeyItem) = New List(Of SankeyItem) From {
    New SankeyItem With {
    .Source = "France", .Target = "UK", .Value = 53
    },
    New SankeyItem With {
    .Source = "Australia", .Target = "UK", .Value = 72
    },
    New SankeyItem With {
    .Source = "France", .Target = "Canada", .Value = 81
    },
    New SankeyItem With {
    .Source = "China", .Target = "Canada", .Value = 96
    },
    New SankeyItem With {
    .Source = "UK", .Target = "France", .Value = 61
    },
    New SankeyItem With {
    .Source = "Canada", .Target = "France", .Value = 89
    }
    }
    Return data
    End Function
    End Class
    
    Public Class SankeyItem
    Public Property Source As String
    Public Property Target As String
    Public Property Value As Double
    End Class
    End Namespace

    结果:

    DevExpress WinForms使用教程:Sankey Diagram控件

    上DevExpress中文网,获取第一手最新产品资讯!

    DevExpress技术交流群2:775869749      欢迎一起进群讨论

  • 相关阅读:
    Triangle
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
    面试题之判断栈的入栈和出栈序列的合法性
    对称矩阵的压缩存储和输出
    栈的经典面试题之用两个栈实现一个队列
    C++的三大特性之一继承
    C++之类的析构函数
    malloc函数的底层实现你是否清楚
    【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结,再也不愁发博客了
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/14003597.html
Copyright © 2011-2022 走看看