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 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; }