복수의 Series을 가지는 Chart 입니다. Documents : http://www.fusioncharts.com/docs/
Inheritance: FusionChartBase
        public void AxisAttributeTest()
        {
            var chart = new MultiSeriesChart
            {
                Caption      = "프로젝트 건간 상태 추이",
                SubCaption   = "<< 프로젝트 제목 >>",
                XAxisName    = "주차",
                BaseFontAttr = { Font = "맑은 고딕" }
            };

            chart.Categories.FontAttr.Font     = "Verdana";
            chart.Categories.FontAttr.FontSize = "8";

            chart.XAxisAttr.Name = "X축";
            chart.YAxisAttr.Name = "Y축";

            chart.PYAxisAttr.Name = "Primary Y";
            chart.SYAxisAttr.Name = "Secondary Y";

            chart.Styles.Definition.Add(new FontStyle("common")
            {
                BgColor = Color.WhiteSmoke,
                Bold    = true
            });

            chart.ExProperties["확장속성"] = "확장속성값";

            ValidateChartXml(chart);
        }
        public void AxisAttributeTest() {
            var chart = new MultiSeriesChart
                        {
                            Caption = "프로젝트 건간 상태 추이",
                            SubCaption = "<< 프로젝트 제목 >>",
                            XAxisName = "주차",
                            BaseFontAttr = { Font = "맑은 고딕" }
                        };

            chart.Categories.FontAttr.Font = "Verdana";
            chart.Categories.FontAttr.FontSize = "8";

            chart.XAxisAttr.Name = "X축";
            chart.YAxisAttr.Name = "Y축";

            chart.PYAxisAttr.Name = "Primary Y";
            chart.SYAxisAttr.Name = "Secondary Y";

            chart.Styles.Definition.Add(new FontStyle("common")
                                        {
                                            BgColor = Color.WhiteSmoke,
                                            Bold = true
                                        });

            chart.ExProperties["확장속성"] = "확장속성값";

            ValidateChartXml(chart);
        }
Esempio n. 3
0
        public void MultiSeriesChart_WriteXml() {
            var chart = new MultiSeriesChart
                        {
                            Caption = "프로젝트 건간 상태 추이",
                            SubCaption = "<< 프로젝트 제목 >>",
                            XAxisName = "주차",
                            BaseFontAttr = { Font = "맑은 고딕" }
                        };

            chart.Categories.FontAttr.Font = "Verdana";
            chart.Categories.FontAttr.FontSize = "8";

            chart.Categories.Add(new CategoryElement() { Label = "C1", LinePosition = HorizontalPosition.Right });
            chart.Categories.Add(new CategoryElement() { Label = "C2" });

            chart.XAxisAttr.Name = "X축";
            chart.YAxisAttr.Name = "Y축";

            chart.PYAxisAttr.Name = "Primary Y";
            chart.PYAxisAttr.ShowValues = true;
            chart.SYAxisAttr.Name = "Secondary Y";
            chart.SYAxisAttr.ShowValues = true;

            chart.Styles.Definition.Add(new FontStyle("common") { BgColor = Color.WhiteSmoke, Bold = true });

            chart.ExProperties["확장속성"] = "확장속성값";

            ValidateChartXmlByReflection(chart);
        }
        /// <summary>
        /// 원하는 Chart를 빌드합니다.
        /// </summary>
        public override IChart BuildFusionChart() {
            var factoryId = Request["FactoryId"].AsInt(1);
            var numVisiblePlot = Request["numVisiblePlot"].AsInt(12);

            var chart = new MultiSeriesChart
                        {
                            Caption = "Factory 정보",
                            SubCaption = "일일 생산량",
                            Palette = rnd.Next(1, 5),
                            RotateLabels = true,
                            // PlaceValuesInside = true,
                            // RotateValues = true,
                            XAxisName = "Day",
                            YAxisName = "Units",
                            NumVisiblePlot = numVisiblePlot,
                            BaseFontAttr = { Font = "맑은 고딕" },
                            BorderAttr = { Show = true },
                            BackgroundAttr = { BgColor = Color.White, BgAlpha = 100 },
                            ShowShadow = true
                        };

            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);
            foreach(var output in outputs) {
                chart.AddCategory(output.DatePro.Value.ToMonthDayString(), true);
                //var category = new CategoryElement
                //               {
                //                   Label = output.DatePro.Value.ToMonthDayString()
                //               };
                // chart.Categories.CategoryElements.Add(category);
            }


            for(int i = 1; i < 4; i++) {
                var dataSet = new DataSetElement
                              {
                                  SeriesName = "Factory " + i,
                                  ShowValues = false
                              };
                FillData(dataSet, i);
                chart.DataSets.Add(dataSet);
            }

            return chart;
        }
        /// <summary>
        /// 원하는 Chart를 빌드합니다.
        /// </summary>
        public override IChart BuildFusionChart() {
            var min = Request["Min"].AsDouble(-5.0);
            var max = Request["Max"].AsDouble(5.0);
            var step = Request["Step"].AsDouble(0.2);

            var avgs = new List<double>();
            var stDevs = new List<double>();

            var i = 0;
            while(true) {
                // Request Parameter로 ND0=avg,stDev&ND1=avg2,stDev2 이런 식으로 오는 것을 파싱한다.
                //
                var nd = Request["ND" + i++].AsText();

                if(nd.IsWhiteSpace())
                    break;
                var avgStDev = nd.Split(",");

                avgs.Add(avgStDev[0].AsDouble(0.0));
                stDevs.Add(avgStDev[1].AsDouble(0.0));
            }

            var chart = new MultiSeriesChart
                        {
                            Caption = "정규분포도",
                            SubCaption = "다중",
                            Palette = rnd.Next(1, 5),
                            XAxisName = "X",
                            YAxisName = "Frequency",
                            NumVisiblePlot = MaxPlotNumber / 2,
                            LabelStep = 5,
                            BaseFontAttr = { Font = "맑은 고딕", FontSize = "16" },
                            BorderAttr = { Show = true },
                            ShowLabels = true,
                            RotateLabels = true,
                            ShowValues = false,
                            BackgroundAttr =
                            {
                                BgColor = Color.WhiteSmoke,
                                BgAlpha = 100
                            },
                            ShowShadow = true,
                        };

            chart.Categories.FontAttr.FontSize = "12";
            FillCategories(chart.Categories, min, max, step);

            for(var x = 0; x < avgs.Count; x++) {
                var dataset = new DataSetElement();
                FillDataSet(dataset, min, max, step, avgs[x], stDevs[x]);
                chart.DataSets.Add(dataset);
                chart.VTrendLines.Add(new DoubleLineElement
                                      {
                                          StartValue = avgs[x],
                                          Color = Color.Brown,
                                          DisplayValue = "Average"
                                      });
            }

            return chart;
        }
        /// <summary>
        /// 원하는 Chart를 빌드합니다.
        /// </summary>
        public override IChart BuildFusionChart() {
            var factoryId = Request["FactoryId"].AsInt(1);
            var lineDual = Request["LineDual"].AsInt(0);
            var numVisiblePlot = Request["numVisiblePlot"].AsInt(12);

            var chart = new MultiSeriesChart
                        {
                            Caption = "Factory 정보",
                            SubCaption = "일일 생산량",
                            Palette = rnd.Next(1, 5),
                            RotateLabels = true,
                            // PlaceValuesInside = true,
                            // RotateValues = true,
                            SlantLabels = true,
                            XAxisName = "Day",
                            YAxisName = "Units",
                            NumVisiblePlot = numVisiblePlot,
                            BaseFontAttr = { Font = "맑은 고딕" },
                            BorderAttr = { Show = true },
                            BackgroundAttr = { BgColor = Color.White, BgAlpha = 100 }
                        };

            chart.ShowShadow = true;

            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);
            foreach(var output in outputs) {
                chart.AddCategory(output.DatePro.Value.ToMonthDayString(), true);
                //var category = new CategoryElement
                //               {
                //                   Label = output.DatePro.Value.ToMonthDayString()
                //               };
                // chart.Categories.CategoryElements.Add(category);
            }


            for(int i = 1; i < 4; i++) {
                var dataSet = new DataSetElement
                              {
                                  SeriesName = "Factory " + i.ToString(),
                                  ShowValues = false,
                                  RenderAs = (i % 4 == 1) ? GraphKind.Area : ((i % 4 == 3) ? GraphKind.Line : GraphKind.Column)
                              };

                if(lineDual == 1 && i == 3) {
                    dataSet.RenderAs = GraphKind.Line;
                    dataSet.ParentYAxis = YAxisKind.S;
                }

                FillData(dataSet, i);
                chart.DataSets.Add(dataSet);
            }

            chart.TrendLines.Add(new DoubleLineElement
                                 {
                                     StartValue = 120,
                                     DisplayValue = "Good",
                                     Color = "#009933".FromHtml()
                                 });
            //chart.TrendLines.TrendlineElements.Add(new DoubleLineElement
            //                                       {
            //                                           StartValue = 120,
            //                                           DisplayValue = "Good",
            //                                           Color = "#009933".FromHtml()
            //                                       });

            return chart;
        }