locked
Burndown Chart Control RRS feed

  • Question

  • Hi,

       i have a project management dashboard and i want to implement hare Burndown chart.

       is their any help for me...?

      Thank's in advance

    Tuesday, October 11, 2011 8:06 AM

Answers

  • Silverlight LineSeries may help you

    You can refer to DataVirtualization/LineSeries

    http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html

    Thursday, October 13, 2011 4:29 AM
  • Hi,

    In my own humble opinion, an iteration burndown chart can be easily done using line charts,
    (sometimes might even combined a column bar chart in background...)

    So in your case, you could easily define
    1)a first lineseries, binding Task amount values to Y (DependentValueBinding) coordinates
        and Time range period (Month, Weeks, or Days...) to X coordinate (IndependentValueBinding)
    2)a second lineseries, binding Benefits amount values to Y (DependentValueBinding) coordinates
        and same Time range period to X coordinate (IndependentValueBinding)
       

    If you're working in Agile, then hopefully Tasks amount curve should go downward while Benefits
    would go upward$$$ ;)

    Here's a simple basic example done very quickly...
    so please feel free to modify the code to your own needs ...

    XAML:

    <chartingToolkit:Chart x:Name="myChart" Width="600" Height="400">            
                <chartingToolkit:LineSeries                 
                     Title="Tasks"
                     ItemsSource="{Binding}"
                     IndependentValueBinding="{Binding Month}"
                     DependentValueBinding="{Binding Task}"/>
                <chartingToolkit:LineSeries
                     
                     Title="Benefits"
                     ItemsSource="{Binding}"
                     IndependentValueBinding="{Binding Month}"
                     DependentValueBinding="{Binding Benefits}"/>
                <chartingToolkit:Chart.Axes>
                    <chartingToolkit:LinearAxis x:Name="axisTasks" Orientation="Y" Title="Tasks amount" ShowGridLines="False" Location="Left">
                        </chartingToolkit:LinearAxis>
                        <chartingToolkit:LinearAxis x:Name="axisBenefits" Orientation="Y" Title="Benefits (K$)" ShowGridLines="True" Location="Right">
                            </chartingToolkit:LinearAxis>
                </chartingToolkit:Chart.Axes>            
            </chartingToolkit:Chart>


    Code Behind CS:

    using System.Windows.Controls.DataVisualization.Charting;
    
    namespace TestBurnDown
    {
        public partial class MainPage : UserControl
        {
            private List<DataInfo> myData = new List<DataInfo>();
    
            public MainPage()
            {
                 
                InitializeComponent();
                
                DataPointSeries series0 = (DataPointSeries)myChart.Series[0];
                DataPointSeries series1 = (DataPointSeries)myChart.Series[1];
                
                series0.ItemsSource = BuildData();
                series1.ItemsSource = BuildData();
                
            }
            private List<DataInfo> BuildData()
            {
                List<DataInfo> myData = new List<DataInfo>();
    
                myData.Add(new DataInfo() { Month = "January", Task = 1100, Benefits = 0 });
                myData.Add(new DataInfo() { Month = "February", Task = 1000, Benefits = 100 });
                myData.Add(new DataInfo() { Month = "March", Task = 900, Benefits = 200 });
                myData.Add(new DataInfo() { Month = "April", Task = 800, Benefits = 300 });
                myData.Add(new DataInfo() { Month = "May", Task = 700, Benefits = 400 });
                myData.Add(new DataInfo() { Month = "June", Task = 600, Benefits = 500 });
                myData.Add(new DataInfo() { Month = "July", Task = 500, Benefits = 600 });
                myData.Add(new DataInfo() { Month = "August", Task = 400, Benefits = 700 });
                myData.Add(new DataInfo() { Month = "September", Task = 300, Benefits = 800 });
                myData.Add(new DataInfo() { Month = "October", Task = 200, Benefits = 900 });
                myData.Add(new DataInfo() { Month = "November", Task = 100, Benefits = 1000 });
                myData.Add(new DataInfo() { Month = "December", Task = 0, Benefits = 1100 });
                
                return myData;
    
            }
    
        }
        #region Class Definition
        public class DataInfo 
        {
    
            public string Month { get; set; }
            public int Task { get; set; }
            public int Benefits { get; set; }
        }
        #endregion
    }


    If this answers your question please Mark as an answer. Thank you!

    Monday, October 17, 2011 1:42 PM

All replies

  • Silverlight LineSeries may help you

    You can refer to DataVirtualization/LineSeries

    http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html

    Thursday, October 13, 2011 4:29 AM
  • Hi,

    In my own humble opinion, an iteration burndown chart can be easily done using line charts,
    (sometimes might even combined a column bar chart in background...)

    So in your case, you could easily define
    1)a first lineseries, binding Task amount values to Y (DependentValueBinding) coordinates
        and Time range period (Month, Weeks, or Days...) to X coordinate (IndependentValueBinding)
    2)a second lineseries, binding Benefits amount values to Y (DependentValueBinding) coordinates
        and same Time range period to X coordinate (IndependentValueBinding)
       

    If you're working in Agile, then hopefully Tasks amount curve should go downward while Benefits
    would go upward$$$ ;)

    Here's a simple basic example done very quickly...
    so please feel free to modify the code to your own needs ...

    XAML:

    <chartingToolkit:Chart x:Name="myChart" Width="600" Height="400">            
                <chartingToolkit:LineSeries                 
                     Title="Tasks"
                     ItemsSource="{Binding}"
                     IndependentValueBinding="{Binding Month}"
                     DependentValueBinding="{Binding Task}"/>
                <chartingToolkit:LineSeries
                     
                     Title="Benefits"
                     ItemsSource="{Binding}"
                     IndependentValueBinding="{Binding Month}"
                     DependentValueBinding="{Binding Benefits}"/>
                <chartingToolkit:Chart.Axes>
                    <chartingToolkit:LinearAxis x:Name="axisTasks" Orientation="Y" Title="Tasks amount" ShowGridLines="False" Location="Left">
                        </chartingToolkit:LinearAxis>
                        <chartingToolkit:LinearAxis x:Name="axisBenefits" Orientation="Y" Title="Benefits (K$)" ShowGridLines="True" Location="Right">
                            </chartingToolkit:LinearAxis>
                </chartingToolkit:Chart.Axes>            
            </chartingToolkit:Chart>


    Code Behind CS:

    using System.Windows.Controls.DataVisualization.Charting;
    
    namespace TestBurnDown
    {
        public partial class MainPage : UserControl
        {
            private List<DataInfo> myData = new List<DataInfo>();
    
            public MainPage()
            {
                 
                InitializeComponent();
                
                DataPointSeries series0 = (DataPointSeries)myChart.Series[0];
                DataPointSeries series1 = (DataPointSeries)myChart.Series[1];
                
                series0.ItemsSource = BuildData();
                series1.ItemsSource = BuildData();
                
            }
            private List<DataInfo> BuildData()
            {
                List<DataInfo> myData = new List<DataInfo>();
    
                myData.Add(new DataInfo() { Month = "January", Task = 1100, Benefits = 0 });
                myData.Add(new DataInfo() { Month = "February", Task = 1000, Benefits = 100 });
                myData.Add(new DataInfo() { Month = "March", Task = 900, Benefits = 200 });
                myData.Add(new DataInfo() { Month = "April", Task = 800, Benefits = 300 });
                myData.Add(new DataInfo() { Month = "May", Task = 700, Benefits = 400 });
                myData.Add(new DataInfo() { Month = "June", Task = 600, Benefits = 500 });
                myData.Add(new DataInfo() { Month = "July", Task = 500, Benefits = 600 });
                myData.Add(new DataInfo() { Month = "August", Task = 400, Benefits = 700 });
                myData.Add(new DataInfo() { Month = "September", Task = 300, Benefits = 800 });
                myData.Add(new DataInfo() { Month = "October", Task = 200, Benefits = 900 });
                myData.Add(new DataInfo() { Month = "November", Task = 100, Benefits = 1000 });
                myData.Add(new DataInfo() { Month = "December", Task = 0, Benefits = 1100 });
                
                return myData;
    
            }
    
        }
        #region Class Definition
        public class DataInfo 
        {
    
            public string Month { get; set; }
            public int Task { get; set; }
            public int Benefits { get; set; }
        }
        #endregion
    }


    If this answers your question please Mark as an answer. Thank you!

    Monday, October 17, 2011 1:42 PM