示例#1
0
        public static ChartsModel.Chart Create()
        {
            var chart = new ChartsModel.CartesianChart();

            // Argument Axis
            chart.ArgumentAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Bottom,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = false,
                Visible = true
            };

            chart.ArgumentAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Value Axis
            chart.ValueAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Left,
                GridLinesVisible      = true,
                GridLinesMinorVisible = false,
                TickmarksVisible      = true,
                Visible = true
            };

            chart.ValueAxis.Label = new ChartsModel.AxisLabel(chart.ValueAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Series
            var series = new ChartsModel.LineSeries {
                DisplayName      = "Series1",
                LabelsVisibility = true,
                ColorEach        = true
            };

            var sampleData = LineData.GetSampleData();

            series.DataMembers[ChartsModel.DataMemberType.Argument] = "Name";
            series.DataMembers[ChartsModel.DataMemberType.Value]    = "Amount";
            series.DataMembers[ChartsModel.DataMemberType.Color]    = "PointColor";
            series.DataSource = sampleData;

            series.Label = new ChartsModel.SeriesLabel(series)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Position           = ChartsModel.SeriesLabelPosition.Top
            };
            series.Appearance = new ChartsModel.SeriesAppearance()
            {
                Color     = new ChartsModel.ColorARGB(0xff, 0x44, 0x72, 0xc4),
                LineStyle = new LineStyle()
                {
                    Thickness = 3, DashStyle = DashStyle.Solid
                },
                LabelAppearance = new ChartsModel.SeriesLabelAppearance()
                {
                    LineVisible = false,
                    Border      = new ChartsModel.Border()
                    {
                        Color = ChartsModel.ColorARGB.Transparent
                    },
                    TextColor = new ChartsModel.ColorARGB(255, 0, 0, 0),
                    BackColor = ChartsModel.ColorARGB.Transparent
                },
            };

            if (series is ChartsModel.ISupportTransparencySeries seriesWithTransparency)
            {
                seriesWithTransparency.Transparency = 0;
            }


            chart.Series.Add(series);

            // Legend
            var legend = new ChartsModel.Legend {
                EnableAntialiasing = DefaultBoolean.True,
                LegendPosition     = ChartsModel.LegendPosition.Top,
                Orientation        = ChartsModel.LegendOrientation.Horizontal,
                Overlay            = false
            };

            chart.Legend = legend;

            // Title
            var title = new ChartsModel.ChartTitle {
                EnableAntialiasing = DefaultBoolean.True,
                Lines = new string[] { "ChartTitle" }
            };

            chart.Titles.Add(title);

            ChartAppearanceHelper.SetupAppearance(chart);

            return(chart);
        }
        public static ChartsModel.Chart Create()
        {
            var chart = new ChartsModel.CartesianChart();

            // Argument Axis
            chart.ArgumentAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Bottom,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = false,
                Visible         = true,
                IntervalOptions = new ChartsModel.ModelIntervalOptions()
                {
                    DivisionMode   = ChartsModel.IntervalDivisionMode.Count,
                    Count          = 4,
                    Width          = 5,
                    OverflowValue  = 16,
                    UnderflowValue = 3,
                    //OverflowValue = new DateTime(2020, 6, 27),
                    //UnderflowValue = new DateTime(2020, 6, 4),
                }
            };

            chart.ArgumentAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Value Axis
            chart.ValueAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Left,
                GridLinesVisible      = true,
                GridLinesMinorVisible = false,
                TickmarksVisible      = true,
                Visible = true
            };

            chart.ValueAxis.Label = new ChartsModel.AxisLabel(chart.ValueAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Series
            var series = new ChartsModel.SideBySideBarSeries {
                DisplayName      = "Series1",
                LabelsVisibility = true,
                BarWidth         = 1
            };

            var sampleData = HistogramData.GetSampleData();

            // By category
            //series.DataMembers[ChartsModel.DataMemberType.Argument] = "Name";
            //series.DataMembers[ChartsModel.DataMemberType.Value] = "Score";
            // Binning
            series.DataMembers[ChartsModel.DataMemberType.Argument] = "Score";
            // DateTime
            //series.DataMembers[ChartsModel.DataMemberType.Argument] = "Date";

            series.DataSource = sampleData;

            //series.Label = new ChartsModel.SeriesLabel(series) {
            //    EnableAntialiasing = DefaultBoolean.True,
            //    Position = ChartsModel.SeriesLabelPosition.Top
            //};
            series.Appearance = new ChartsModel.SeriesAppearance()
            {
                Color           = new ChartsModel.ColorARGB(0xff, 0x44, 0x72, 0xc4),
                LabelAppearance = new ChartsModel.SeriesLabelAppearance()
                {
                    LineVisible = false,
                    Border      = new ChartsModel.Border()
                    {
                        Color = ChartsModel.ColorARGB.Transparent
                    },
                    TextColor = new ChartsModel.ColorARGB(255, 255, 255, 255),
                    BackColor = ChartsModel.ColorARGB.Transparent
                },
            };


            if (series is ChartsModel.ISupportTransparencySeries seriesWithTransparency)
            {
                seriesWithTransparency.Transparency = 0;
            }

            chart.Series.Add(series);

            // Legend
            var legend = new ChartsModel.Legend {
                EnableAntialiasing = DefaultBoolean.True,
                LegendPosition     = ChartsModel.LegendPosition.Top,
                Orientation        = ChartsModel.LegendOrientation.Horizontal,
                Overlay            = false
            };

            chart.Legend = legend;

            // Title
            var title = new ChartsModel.ChartTitle {
                EnableAntialiasing = DefaultBoolean.True,
                Lines = new string[] { "Scores" }
            };

            chart.Titles.Add(title);

            ChartAppearanceHelper.SetupAppearance(chart);

            return(chart);
        }
示例#3
0
        public static ChartsModel.Chart Create()
        {
            var chart = new ChartsModel.CartesianChart();

            // Argument Axis
            chart.ArgumentAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Bottom,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = false,
                Visible = true,
            };

            chart.ArgumentAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Value Axis
            chart.ValueAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Left,
                GridLinesVisible      = true,
                GridLinesMinorVisible = false,
                TickmarksVisible      = true,
                Visible = true
            };

            chart.ValueAxis.Label = new ChartsModel.AxisLabel(chart.ValueAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Secondary Value Axis
            var secondaryAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Right,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = true,
                Visible = true,
            };

            chart.SecondaryValueAxes.Add(secondaryAxis);

            secondaryAxis.Label = new ChartsModel.AxisLabel(secondaryAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Formatter          = new PercentageFormatter(),
                Visible            = true
            };

            secondaryAxis.Range = new ChartsModel.AxisRange(secondaryAxis)
            {
                MinValue = 0,
                MaxValue = 1
            };

            // Series
            var series = new ChartsModel.SideBySideBarSeries {
                DisplayName      = "Amount",
                LabelsVisibility = true,
                BarWidth         = 1
            };

            var sampleData = ParetoData.GetSampleData();

            series.DataMembers[ChartsModel.DataMemberType.Argument] = "Name";
            series.DataMembers[ChartsModel.DataMemberType.Value]    = "Amount";
            series.DataSource = sampleData;

            series.Appearance = new ChartsModel.SeriesAppearance()
            {
                Color           = new ChartsModel.ColorARGB(0xff, 0x44, 0x72, 0xc4),
                LabelAppearance = new ChartsModel.SeriesLabelAppearance()
                {
                    LineVisible = false,
                    Border      = new ChartsModel.Border()
                    {
                        Color = ChartsModel.ColorARGB.Transparent
                    },
                    TextColor = new ChartsModel.ColorARGB(255, 255, 255, 255),
                    BackColor = ChartsModel.ColorARGB.Transparent
                },
            };

            series.Label = new ChartsModel.SeriesLabel(series)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Position           = ChartsModel.SeriesLabelPosition.InsideEnd
            };


            if (series is ChartsModel.ISupportTransparencySeries seriesWithTransparency)
            {
                seriesWithTransparency.Transparency = 0;
            }

            chart.Series.Add(series);

            // Pareto line
            var paretoLine = new ChartsModel.LineSeries {
                DisplayName      = "Pareto line",
                LabelsVisibility = false,
            };

            paretoLine.DataMembers[ChartsModel.DataMemberType.Argument] = "Name";
            paretoLine.DataMembers[ChartsModel.DataMemberType.Value]    = "CumulativePercentage";
            paretoLine.DataSource = sampleData;
            paretoLine.SecondaryValueAxisIndex = 0;

            paretoLine.Appearance = new ChartsModel.SeriesAppearance()
            {
                Color = new ChartsModel.ColorARGB(0xff, 0xed, 0x7d, 0x31),
            };

            chart.Series.Add(paretoLine);

            // Legend
            var legend = new ChartsModel.Legend {
                EnableAntialiasing = DefaultBoolean.True,
                LegendPosition     = ChartsModel.LegendPosition.Top,
                Orientation        = ChartsModel.LegendOrientation.Horizontal,
                Overlay            = false
            };

            chart.Legend = legend;

            // Title
            var title = new ChartsModel.ChartTitle {
                EnableAntialiasing = DefaultBoolean.True,
                Lines = new string[] { "Pareto" }
            };

            chart.Titles.Add(title);

            ChartAppearanceHelper.SetupAppearance(chart);

            return(chart);
        }
示例#4
0
        public static ChartsModel.Chart Create()
        {
            var chart = new ChartsModel.CartesianChart();

            // Argument Axis
            chart.ArgumentAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Bottom,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = false,
                Visible = true
            };

            chart.ArgumentAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Value Axis
            chart.ValueAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Left,
                GridLinesVisible      = true,
                GridLinesMinorVisible = false,
                TickmarksVisible      = true,
                Visible = true
            };

            chart.ValueAxis.Label = new ChartsModel.AxisLabel(chart.ValueAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            chart.Titles.Add(new ChartTitle()
            {
                Lines = new string[] { "MultiLine", "Title" }, Font = new FontModel()
                {
                    Bold = true, Italic = true, Size = 16
                }
            });

            // Series
            var series = new ChartsModel.WaterfallSeries {
                DisplayName      = "Series1",
                LabelsVisibility = true
            };

            var sampleData = WaterfallData.GetSampleData();

            series.DataMembers[ChartsModel.DataMemberType.Argument] = "Name";
            series.DataMembers[ChartsModel.DataMemberType.Value]    = "Amount";
            series.DataMembers[ChartsModel.DataMemberType.Color]    = "PointColor";
            series.DataSource = sampleData;

            series.Label = new ChartsModel.SeriesLabel(series)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Position           = ChartsModel.SeriesLabelPosition.Top
            };
            series.Appearance = new ChartsModel.SeriesAppearance()
            {
                Color           = new ChartsModel.ColorARGB(0xff, 0x44, 0x72, 0xc4),
                LabelAppearance = new ChartsModel.SeriesLabelAppearance()
                {
                    LineVisible = false,
                    Border      = new ChartsModel.Border()
                    {
                        Color = ChartsModel.ColorARGB.Transparent
                    },
                    TextColor = new ChartsModel.ColorARGB(255, 0, 0, 0),
                    BackColor = ChartsModel.ColorARGB.Transparent
                },
            };

            //series.RisingBarColor = new ChartsModel.ColorARGB(0xff, 0x44, 0x72, 0xc4);
            series.FallingBarColor  = new ChartsModel.ColorARGB(0xff, 0xed, 0x7d, 0x31);
            series.SubtotalBarColor = new ChartsModel.ColorARGB(0xff, 0x70, 0xad, 0x47);
            //series.RisingBarColor = ChartsModel.ColorARGB.Empty;
            //series.FallingBarColor = ChartsModel.ColorARGB.Empty;
            //series.SubtotalBarColor = ChartsModel.ColorARGB.Empty;

            if (series is ChartsModel.ISupportTransparencySeries seriesWithTransparency)
            {
                seriesWithTransparency.Transparency = 0;
            }

            for (int i = 0; i < sampleData.Count; i++)
            {
                if (sampleData[i].IsTotal)
                {
                    series.Subtotals.Add(i);
                }
            }

            chart.Series.Add(series);

            // Legend
            var legend = new ChartsModel.Legend {
                EnableAntialiasing = DefaultBoolean.True,
                LegendPosition     = ChartsModel.LegendPosition.Top,
                Orientation        = ChartsModel.LegendOrientation.Horizontal,
                Overlay            = false
            };

            chart.Legend = legend;

            // Title
            var title = new ChartsModel.ChartTitle {
                EnableAntialiasing = DefaultBoolean.True,
                Lines = new string[] { "4th Quarter" }
            };

            chart.Titles.Add(title);

            //series.RisingBarColor = new ColorARGB(0xff, 0x4d, 0xbd, 0x61);
            //series.RisingBarFillStyle = new FillStyle() { FillMode = FillMode.Gradient, Options = new FillOptions() { Color2 = new ColorARGB(0xff, 0x91, 0xe2, 0xbf) } };
            series.RisingBarColor     = ColorARGB.Transparent;
            series.RisingBarFillStyle = new FillStyle()
            {
                FillMode = FillMode.Empty
            };
            series.SubtotalBarColor     = new ColorARGB(0xff, 0xd9, 0xb2, 0x53);
            series.SubtotalBarFillStyle = new FillStyle()
            {
                FillMode = FillMode.Gradient, Options = new FillOptions()
                {
                    Color2 = new ColorARGB(0xff, 0x21, 0xa2, 0xcf)
                }
            };

            ChartAppearanceHelper.SetupAppearance(chart);

            return(chart);
        }
示例#5
0
        public static ChartsModel.Chart Create()
        {
            var chart = new ChartsModel.CartesianChart();

            // Argument Axis
            chart.ArgumentAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Bottom,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = false,
                Visible = true
            };

            chart.ArgumentAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            // Value Axis
            chart.ValueAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Left,
                AutoGrid              = false,
                GridLinesVisible      = true,
                GridLinesMinorVisible = false,
                GridSpacing           = 5,
                GridSpacingFactor     = 30,
                TickmarksVisible      = true,
                Visible = true
            };

            chart.ValueAxis.Label = new ChartsModel.AxisLabel(chart.ValueAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            chart.ValueAxis.Range = new ChartsModel.AxisRange(chart.ValueAxis)
            {
                MinValue = 40,
                MaxValue = 70
            };

            // Series
            for (int i = 0; i < 3; i++)
            {
                var series = new ChartsModel.BoxPlotSeries()
                {
                    DisplayName      = $"School {i + 1}",
                    LabelsVisibility = i == 0
                };

                series.DataMembers[ChartsModel.DataMemberType.Argument]         = "Name";
                series.DataMembers[ChartsModel.DataMemberType.BoxPlotMin]       = "Min";
                series.DataMembers[ChartsModel.DataMemberType.BoxPlotQuartile1] = "Quartile1";
                series.DataMembers[ChartsModel.DataMemberType.BoxPlotMedian]    = "Median";
                series.DataMembers[ChartsModel.DataMemberType.BoxPlotQuartile3] = "Quartile3";
                series.DataMembers[ChartsModel.DataMemberType.BoxPlotMax]       = "Max";
                series.DataMembers[ChartsModel.DataMemberType.BoxPlotMean]      = "Mean";
                series.DataMembers[ChartsModel.DataMemberType.BoxPlotOutliers]  = "Outliers";
                series.DataSource = BoxWhiskerData.GetSampleData(i);

                series.Appearance = new ChartsModel.SeriesAppearance()
                {
                    //Color = GetSeriesColor(i),
                    Color     = ChartsModel.ColorARGB.Transparent,
                    FillStyle = new ChartsModel.FillStyle()
                    {
                        FillMode = ChartsModel.FillMode.Empty,
                    },
                    Border = new ChartsModel.Border()
                    {
                        Color = GetSeriesColor(i), Thickness = 1
                    }
                };

                if (i == 0)
                {
                    // DATA LABELS?????
                    //series.Label = new ChartsModel.SeriesLabel(series) {
                    //    EnableAntialiasing = DefaultBoolean.True,
                    //    Position = ChartsModel.SeriesLabelPosition.Top
                    //};
                    //series.Appearance.LabelAppearance = new ChartsModel.SeriesLabelAppearance() {
                    //    LineVisible = false,
                    //    Border = new ChartsModel.Border() { Color = ChartsModel.ColorARGB.Transparent },
                    //    TextColor = new ChartsModel.ColorARGB(255, 0, 0, 0),
                    //    BackColor = ChartsModel.ColorARGB.Transparent
                    //};
                }

                if (series is ChartsModel.ISupportTransparencySeries seriesWithTransparency)
                {
                    seriesWithTransparency.Transparency = 0;
                }

                chart.Series.Add(series);

                //if (i == 1) {
                //    var meanLine = new ChartsModel.LineSeries();
                //    meanLine.DataMembers[ChartsModel.DataMemberType.Argument] = "Name";
                //    meanLine.DataMembers[ChartsModel.DataMemberType.Value] = "Mean";
                //    meanLine.DataSource = BoxWhiskerData.GetSampleData(i);
                //    meanLine.LabelsVisibility = false;
                //    meanLine.Appearance = new ChartsModel.SeriesAppearance() { Color = new ChartsModel.ColorARGB(0xff, 0xcb, 0x5c, 0x20) };
                //    meanLine.Appearance.LineStyle = new ChartsModel.LineStyle() { Thickness = 1, DashStyle = ChartsModel.DashStyle.Solid };
                //    chart.Series.Add(meanLine);
                //}
            }

            // Legend
            var legend = new ChartsModel.Legend {
                EnableAntialiasing = DefaultBoolean.True,
                LegendPosition     = ChartsModel.LegendPosition.Right,
                Orientation        = ChartsModel.LegendOrientation.Vertical,
                Overlay            = false
            };

            chart.Legend = legend;

            // Title
            var title = new ChartsModel.ChartTitle {
                EnableAntialiasing = DefaultBoolean.True,
                Lines = new string[] { "Course by schools" }
            };

            chart.Titles.Add(title);

            ChartAppearanceHelper.SetupAppearance(chart);

            return(chart);
        }
示例#6
0
        public static ChartsModel.Chart Create()
        {
            var chart = new ChartsModel.CartesianChart();

            chart.Rotated = true;

            // Argument Axis
            chart.ArgumentAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Bottom,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = false,
                Reverse = true,
                Visible = true
            };

            chart.ArgumentAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = true
            };

            chart.ValueAxis = new ChartsModel.Axis()
            {
                Position              = ChartsModel.AxisPosition.Left,
                GridLinesVisible      = false,
                GridLinesMinorVisible = false,
                TickmarksVisible      = false,
                Visible = false
            };

            chart.ValueAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Visible            = false
            };

            // Series
            var series = new ChartsModel.RangeBarSeries()
            {
                DisplayName      = "Series 1",
                LabelsVisibility = false,
                BarWidth         = 1.0 / (1.0 + 0.25) // 25% gap
            };

            series.DataMembers[ChartsModel.DataMemberType.Argument] = "Stage";
            series.DataMembers[ChartsModel.DataMemberType.Value]    = "Min";
            series.DataMembers[ChartsModel.DataMemberType.Value2]   = "Max";
            series.DataMembers[ChartsModel.DataMemberType.Color]    = "PointColor";
            series.DataSource = FunnelData.GetSampleData();

            //series.Appearance = new ChartsModel.SeriesAppearance() { Color = new ChartsModel.ColorARGB(0xff, 0x44, 0x72, 0xc4) };
            series.Appearance           = new ChartsModel.SeriesAppearance();
            series.Appearance.FillStyle = new ChartsModel.FillStyle()
            {
                FillMode = ChartsModel.FillMode.Solid
            };
            series.Appearance.Color = new ChartsModel.ColorARGB(0xff, 0xff, 0, 0);

            //Data Labels
            // UNCOMMENT for InvalidCastException under WinForms
            //series.Label = new ChartsModel.SeriesLabel(series) {
            //    EnableAntialiasing = DefaultBoolean.True,
            //    Position = ChartsModel.SeriesLabelPosition.InsideBase,
            //};

            series.Appearance.LabelAppearance = new ChartsModel.SeriesLabelAppearance()
            {
                LineVisible = false,
                Border      = new ChartsModel.Border()
                {
                    Color = ChartsModel.ColorARGB.Transparent
                },
                TextColor = new ChartsModel.ColorARGB(0xff, 0xff, 0xff, 0xff),
                BackColor = ChartsModel.ColorARGB.Transparent
            };

            if (series is ChartsModel.ISupportTransparencySeries seriesWithTransparency)
            {
                seriesWithTransparency.Transparency = 0;
            }

            chart.Series.Add(series);

            var pointSeries = new BubbleSeries()
            {
                DisplayName      = "Series 2",
                LabelsVisibility = true,
            };

            pointSeries.DataMembers[ChartsModel.DataMemberType.Argument] = "Stage";
            pointSeries.DataMembers[ChartsModel.DataMemberType.Value]    = "Mid";
            pointSeries.DataMembers[ChartsModel.DataMemberType.Weight]   = "Mid";
            pointSeries.DataSource           = FunnelData.GetSampleData();
            pointSeries.Appearance           = new ChartsModel.SeriesAppearance();
            pointSeries.Appearance.Color     = ChartsModel.ColorARGB.Transparent;
            pointSeries.Appearance.FillStyle = new ChartsModel.FillStyle()
            {
                FillMode = ChartsModel.FillMode.Empty
            };
            pointSeries.Appearance.Border = new ChartsModel.Border()
            {
                Color = ChartsModel.ColorARGB.Transparent
            };
            pointSeries.Appearance.MarkerAppearance = new MarkerAppearance()
            {
                BorderVisible = false,
                BorderColor   = ChartsModel.ColorARGB.Transparent,
                FillStyle     = new FillStyle()
                {
                    FillMode = ChartsModel.FillMode.Empty
                }
            };
            pointSeries.ShowInLegend = false;
            pointSeries.Label        = new ChartsModel.SeriesLabel(series)
            {
                EnableAntialiasing = DefaultBoolean.True,
                Position           = ChartsModel.SeriesLabelPosition.Center,
                Formatter          = new FunnelFormatter()
            };
            pointSeries.Appearance.LabelAppearance = new ChartsModel.SeriesLabelAppearance()
            {
                LineVisible = false,
                Border      = new ChartsModel.Border()
                {
                    Color = ChartsModel.ColorARGB.Transparent
                },
                TextColor = new ChartsModel.ColorARGB(0xff, 0xff, 0xff, 0xff),
                BackColor = ChartsModel.ColorARGB.Transparent
            };
            chart.Series.Add(pointSeries);

            // Legend
            var legend = new ChartsModel.Legend {
                EnableAntialiasing = DefaultBoolean.True,
                LegendPosition     = ChartsModel.LegendPosition.Top,
                Orientation        = ChartsModel.LegendOrientation.Horizontal,
                Overlay            = false
            };

            chart.Legend = legend;

            // Title
            var title = new ChartsModel.ChartTitle {
                EnableAntialiasing = DefaultBoolean.True,
                Lines = new string[] { "Sales Pipeline" }
            };

            chart.Titles.Add(title);

            ChartAppearanceHelper.SetupAppearance(chart);
            chart.Appearance.DiagramAppearance.BorderVisible = false;

            return(chart);

            //var chart = new ChartsModel.FunnelChart();

            //// Argument Axis
            ////chart.ArgumentAxis = new ChartsModel.Axis() {
            ////    Position = ChartsModel.AxisPosition.Bottom,
            ////    GridLinesVisible = false,
            ////    GridLinesMinorVisible = false,
            ////    TickmarksVisible = false,
            ////    Visible = true
            ////};

            ////chart.ArgumentAxis.Label = new ChartsModel.AxisLabel(chart.ArgumentAxis) {
            ////    EnableAntialiasing = DefaultBoolean.True,
            ////    Visible = true
            ////};

            //// Series
            //var series = new ChartsModel.FunnelSeries() {
            //    DisplayName = "Series 1",
            //    LabelsVisibility = true,
            //    PointShape = ChartsModel.FunnelPointShape.Rectangle
            //};

            //series.DataMembers[ChartsModel.DataMemberType.Argument] = "Stage";
            //series.DataMembers[ChartsModel.DataMemberType.Value] = "Amount";
            //series.DataMembers[ChartsModel.DataMemberType.Color] = "PointColor";
            //series.DataSource = FunnelData.GetSampleData();

            ////series.Appearance = new ChartsModel.SeriesAppearance() { Color = new ChartsModel.ColorARGB(0xff, 0x44, 0x72, 0xc4) };
            //series.Appearance = new ChartsModel.SeriesAppearance();
            //series.Appearance.FillStyle = new ChartsModel.FillStyle() { FillMode = ChartsModel.FillMode.Solid };
            //series.Appearance.Color = new ChartsModel.ColorARGB(0xff, 0xff, 0, 0);

            ////Data Labels
            //series.Label = new ChartsModel.SeriesLabel(series) {
            //   EnableAntialiasing = DefaultBoolean.True,
            //   Position = ChartsModel.SeriesLabelPosition.Center
            //};
            //series.Appearance.LabelAppearance = new ChartsModel.SeriesLabelAppearance() {
            //    LineVisible = false,
            //    Border = new ChartsModel.Border() { Color = ChartsModel.ColorARGB.Transparent },
            //    TextColor = new ChartsModel.ColorARGB(0xff, 0xff, 0xff, 0xff),
            //    BackColor = ChartsModel.ColorARGB.Transparent
            //};

            //if (series is ChartsModel.ISupportTransparencySeries seriesWithTransparency)
            //    seriesWithTransparency.Transparency = 0;

            //chart.Series.Add(series);

            //// Legend
            //var legend = new ChartsModel.Legend {
            //    EnableAntialiasing = DefaultBoolean.True,
            //    LegendPosition = ChartsModel.LegendPosition.Top,
            //    Orientation = ChartsModel.LegendOrientation.Horizontal,
            //    Overlay = false
            //};
            //chart.Legend = legend;

            //// Title
            //var title = new ChartsModel.ChartTitle {
            //    EnableAntialiasing = DefaultBoolean.True,
            //    Lines = new string[] { "Sales Pipeline" }
            //};
            //chart.Titles.Add(title);

            //ChartAppearanceHelper.SetupAppearance(chart);

            //return chart;
        }