Exemple #1
0
        public void NullSeries()
        {
            var barChart = new BarChart {
                Series = null
            };

            barChart.UnsafeRedraw();

            var lineChart = new LineChart {
                Series = null
            };

            lineChart.UnsafeRedraw();

            var pieChart = new PieChart {
                Series = null
            };

            pieChart.UnsafeRedraw();

            var stackedChart = new StackedBarChart {
                Series = null
            };

            stackedChart.UnsafeRedraw();
        }
Exemple #2
0
        public void MaxEqMinValues()
        {
            var vals = new ChartValues <double> {
                1, 1
            };

            var barChart = new BarChart
            {
                Series = new SeriesCollection
                {
                    new BarSeries {
                        Values = vals
                    },
                    new LineSeries {
                        Values = vals
                    }
                }
            };

            barChart.UnsafeRedraw();

            var lineChart = new LineChart
            {
                Series = new SeriesCollection
                {
                    new LineSeries {
                        Values = vals
                    }
                }
            };

            lineChart.UnsafeRedraw();

            var pieChart = new PieChart
            {
                Series = new SeriesCollection
                {
                    new PieSeries {
                        Values = vals
                    }
                }
            };

            pieChart.UnsafeRedraw();

            var stackedChart = new StackedBarChart
            {
                Series = new SeriesCollection
                {
                    new StackedBarSeries {
                        Values = vals
                    }
                }
            };

            stackedChart.UnsafeRedraw();
        }
Exemple #3
0
 private void Redraw(object sender, RoutedEventArgs e)
 {
     LineChart.ClearAndPlot();
     BarChart.ClearAndPlot();
     PieChart.ClearAndPlot();
     PieChart1.ClearAndPlot();
     StackedBarChart.ClearAndPlot();
     ScatterChart.ClearAndPlot();
     RadarChart.ClearAndPlot();
 }
Exemple #4
0
        public void EmptyValues()
        {
            var vals = new ChartValues <double>();

            var barChart = new BarChart
            {
                Series = new SeriesCollection
                {
                    new BarSeries {
                        Values = vals
                    },
                    new LineSeries {
                        Values = vals
                    }
                }
            };

            barChart.UnsafeUpdate();

            var lineChart = new LineChart
            {
                Series = new SeriesCollection
                {
                    new LineSeries {
                        Values = vals
                    }
                }
            };

            lineChart.UnsafeUpdate();

            var pieChart = new PieChart
            {
                Series = new SeriesCollection
                {
                    new PieSeries {
                        Values = vals
                    }
                }
            };

            pieChart.UnsafeUpdate();

            var stackedChart = new StackedBarChart
            {
                Series = new SeriesCollection
                {
                    new StackedBarSeries {
                        Values = vals
                    }
                }
            };

            stackedChart.UnsafeUpdate();
        }
Exemple #5
0
        public void NullValues()
        {
            var barChart = new BarChart
            {
                Series = new SeriesCollection
                {
                    new BarSeries {
                        Values = null
                    },
                    new LineSeries {
                        Values = null
                    }
                }
            };

            barChart.UnsafeRedraw();

            var lineChart = new LineChart
            {
                Series = new SeriesCollection
                {
                    new LineSeries {
                        Values = null
                    }
                }
            };

            lineChart.UnsafeRedraw();

            var pieChart = new PieChart
            {
                Series = new SeriesCollection
                {
                    new PieSeries {
                        Values = null
                    }
                }
            };

            pieChart.UnsafeRedraw();

            var stackedChart = new StackedBarChart
            {
                Series = new SeriesCollection
                {
                    new StackedBarSeries {
                        Values = null
                    }
                }
            };

            stackedChart.UnsafeRedraw();
        }
Exemple #6
0
        private void IsAlive(object sender, RoutedEventArgs e)
        {
            if (_isAlive)
            {
                _timer.Stop();
                _isAlive = false;

                LineChart.Hoverable = true;
                LineChart.ClearAndPlot(false);

                BarChart.Hoverable = true;
                BarChart.ClearAndPlot(false);

                StackedBarChart.Hoverable = true;
                StackedBarChart.ClearAndPlot(false);

                PieChart.Hoverable = true;
                PieChart.ClearAndPlot();
                PieChart1.Hoverable = true;
                PieChart1.ClearAndPlot();

                ScatterChart.Hoverable = true;
                ScatterChart.ClearAndPlot();

                RadarChart.Hoverable = true;
                RadarChart.ClearAndPlot();
            }
            else
            {
                _timer.Start();
                _isAlive = true;

                LineChart.Hoverable               = false;
                BarChart.Hoverable                = false;
                StackedBarChart.Hoverable         = false;
                PieChart.Hoverable                = false;
                PieChart1.Hoverable               = false;
                ScatterChart.Hoverable            = false;
                ScatterChart.PrimaryAxis.MinValue = null;
                RadarChart.Hoverable              = false;
            }
        }
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            var                      Collection   = new ObservableCollection <ChartItem>();
            string                   Title        = "";
            string                   SubTitle     = "";
            List <string>            Clustertitle = new List <string>();
            GH_Structure <GH_Number> treeValues   = new GH_Structure <GH_Number>();
            //GH_Structure<GH_String> treeNames = new GH_Structure<GH_String>();
            List <string> names     = new List <string>();
            int           chartType = 0;

            //get GH input data
            bool hasTitle = DA.GetData <string>("Title", ref Title);

            DA.GetData <string>("SubTitle", ref SubTitle);
            DA.GetDataList <string>("ClusterTitle", Clustertitle);
            DA.GetDataTree <GH_Number>("Data", out treeValues);
            //DA.GetDataTree<GH_String>("Names", out treeNames);
            DA.GetDataList <string>("Names", names);

            DA.GetData <int>("Chart Type", ref chartType);
            ChartBase ChartElem = null;

            switch (chartType)
            {
            case 0:
                var ColumnCluster = new ClusteredColumnChart();
                ChartElem = ColumnCluster;
                break;

            case 1:
                var BarCluster = new ClusteredBarChart();
                ChartElem = BarCluster;
                break;

            case 2:
                var ColumnStack = new StackedColumnChart();
                ChartElem = ColumnStack;
                break;

            case 3:
                var BarStack = new StackedBarChart();
                ChartElem = BarStack;
                break;

            case 4:
                var pieElem = new PieChart();
                ChartElem = pieElem;

                break;

            default:
                var defaultElem = new ClusteredBarChart();
                ChartElem = defaultElem;
                break;
            }

            //Give the chart its name

            ChartElem.ChartTitle    = Title;
            ChartElem.ChartSubTitle = SubTitle;

            // MultiChartModel mcm = new MultiChartModel();
            // mcm.Series = new ObservableCollection<SeriesModel>();


            for (int i = 0; i < treeValues.Branches.Count; i++)
            {
                //package the data into a custom chart model and series
                List <double> listDouble = treeValues[i].ConvertAll(x => x.Value);
                SeriesModel   vm         = new SeriesModel(names.ToList(), listDouble, Clustertitle[i]);



                ChartSeries series = new ChartSeries();
                //We have to set the series data context rather than the whole chart
                series.DataContext = vm;

                series.SeriesTitle   = Clustertitle[i];
                series.DisplayMember = "Category";
                series.ValueMember   = "Number";

                Binding seriesBinding = new Binding();
                seriesBinding.Source = vm;
                seriesBinding.Path   = new PropertyPath("Chart");
                BindingOperations.SetBinding(series, ChartSeries.ItemsSourceProperty, seriesBinding);

                ChartElem.Series.Add(series);
                //Pass data to the chart
                //  mcm.Series.Add(vm);
            }

            //Binding seriesSetBinding = new Binding();
            //seriesSetBinding.Source = mcm;
            //seriesSetBinding.Path = new PropertyPath("Series");
            //BindingOperations.SetBinding(ChartElem, ChartBase.SeriesSourceProperty, seriesSetBinding);



            ////Send Data to GH output
            DA.SetData("MultiChart", new UIElement_Goo(ChartElem, "Chart Elem", InstanceGuid, DA.Iteration));
            //  DA.SetData("Test","listNames");
        }