private IEnumerable <AreaChart> GenerateLineCharts() { var linear = new AreaChart(GetXValues(), GetYValuesLinearly()) { ChartColor = SKColors.Red, ShowPoints = true, ChartName = "Linear" }; var random = new AreaChart(GetXValues(), Random(100).OrderBy(x => x)) { ChartColor = SKColors.Green, ShowPoints = true, ChartName = "Random" }; var trigValues = Trigonometric(); var sineCurve = new AreaChart(trigValues.Item1, trigValues.Item2) { ChartColor = SKColors.DarkBlue, ShowPoints = true, ChartName = "Trigonometric" }; return(new List <AreaChart> { linear, random, sineCurve }); }
private IEnumerable <AreaChart> GenerateAreaChart() { var area1 = new AreaChart(GetXValues(20), GetYValues(10, 20)) { ChartColor = SKColors.Red, ChartName = "Area 1", ShowPoints = false }; var area2 = new AreaChart(GetXValues(20), GetYValues(10, 20)) { ChartColor = SKColors.Green, ChartName = "Area 2", ShowPoints = true }; var area3 = new AreaChart(GetXValues(20), GetYValues(10, 20)) { ChartColor = SKColors.Yellow, ChartName = "Area 3", ShowPoints = false }; return(new List <AreaChart> { area1, area2, area3 }); }
protected override void Dispose(bool disposing) { if (AreaChart != null) { AreaChart.Dispose(); AreaChart = null; } base.Dispose(disposing); }
private void cargarGraficas() { /*Grafica del cliente*/ /*Grafica TRM*/ AreaChart.DataSource = negocio.GetDataTable("select valorTRM, convert(varchar,fechaTRM,103) fecha from Trm order by fechaTRM asc"); AreaChart.DataBind(); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); var worksheet = this.grid.CurrentWorksheet; // ソースコードのコメントと説明は「折れ線グラフ(LineChartDemo.cs)」をご覧ください。 worksheet["A2"] = new object[, ] { { null, 2008, 2009, 2010, 2011, 2012 }, { "札幌", 3, 2, 4, 2, 6 }, { "名古屋", 7, 5, 3, 6, 4 }, { "東京", 13, 10, 9, 10, 9 }, { "合計", "=SUM(B3:B5)", "=SUM(C3:C5)", "=SUM(D3:D5)", "=SUM(E3:E5)", "=SUM(F3:F5)" }, }; var dataRange = worksheet.Ranges["B3:F5"]; var serialNamesRange = worksheet.Ranges["A3:A6"]; var categoryNamesRange = worksheet.Ranges["B2:F2"]; worksheet.AddHighlightRange(categoryNamesRange); worksheet.AddHighlightRange(serialNamesRange); worksheet.AddHighlightRange(dataRange); var chart = new AreaChart { // 位置とサイズ Bounds = new Graphics.Rectangle(220, 160, 400, 260), // グラフのタイトル Title = "面グラフ", // データソース DataSource = new WorksheetChartDataSource(worksheet, serialNamesRange, dataRange) { CategoryNameRange = categoryNamesRange, } }; // すべての系列の色を半透明にする foreach (var style in chart.DataSerialStyles) { style.FillColor = new Graphics.SolidColor(100, style.FillColor.ToSolidColor()); } worksheet.FloatingObjects.Add(chart); }
protected void Page_Load(object sender, EventArgs e) { negocio = new Implementacion(); RadHtmlChart1.DataSource = negocio.GetDataTable("select top 10 totalRegistros, regErroneos, regCorrectos, convert(varchar,CreadoFecha,103) fecha from LogsJobs where tipoJob = 1 order by fecha desc"); RadHtmlChart1.DataBind(); AreaChart.DataSource = negocio.GetDataTable("select top 10 totalRegistros, regErroneos, regCorrectos, convert(varchar,CreadoFecha,103) fecha from LogsJobs where tipoJob = 2 order by fecha desc"); AreaChart.DataBind(); RadHtmlChart2.DataSource = negocio.GetDataTable("select top 1 (convert(decimal(18,2),totalRegistros)-convert(decimal(18,2),regErroneos))/convert(decimal(18,2),totalRegistros)*100 as porcentaje, 'Acividades' as label from LogsJobs where tipoJob = 1 " + "union all " + "select top 1 (convert(decimal(18,2),totalRegistros)-convert(decimal(18,2),regCorrectos))/convert(decimal(18,2),totalRegistros)*100 as porcentaje, 'Horas' as label from LogsJobs where tipoJob = 1"); RadHtmlChart2.DataBind(); RadHtmlChart3.DataSource = negocio.GetDataTable("select top 1 (convert(decimal(18,2),totalRegistros)-convert(decimal(18,2),regErroneos))/convert(decimal(18,2),totalRegistros)*100 as porcentaje, 'Actividades' as label from LogsJobs where tipoJob = 2 " + "union all " + "select top 1 (convert(decimal(18,2),totalRegistros)-convert(decimal(18,2),regCorrectos))/convert(decimal(18,2),totalRegistros)*100 as porcentaje, 'Horas' as label from LogsJobs where tipoJob = 2"); RadHtmlChart3.DataBind(); }
/// <summary> /// Draw DataSeries visual (polygon) for Radar /// </summary> /// <param name="listOfRadarPoints"></param> /// <param name="series"></param> /// <param name="radarCanvas"></param> private static void DrawDataSeriesPolygon(List <Point> listOfRadarPoints, DataSeries series, Canvas radarCanvas) { if (listOfRadarPoints.Count > 0) { Polygon polygon = new Polygon() { Tag = new ElementData() { Element = series, VisualElementName = "RadarVisual" } }; polygon.Fill = (Boolean)series.LightingEnabled ? Graphics.GetLightingEnabledBrush(series.Color, "Linear", null) : series.Color; polygon.Stroke = (series.BorderColor == null) ? GetDarkerColor(series.Color) : series.BorderColor; polygon.StrokeDashArray = ExtendedGraphics.GetDashArray(series.BorderStyle); polygon.StrokeThickness = (series.BorderThickness.Left == 0) ? 0.5 : series.BorderThickness.Left; polygon.StrokeMiterLimit = 1; polygon.Opacity = series.Opacity; PointCollection pointCollection = new PointCollection(); foreach (Point point in listOfRadarPoints) { pointCollection.Add(point); } Rect polygonBounds = AreaChart.GetBounds(pointCollection); polygon.Width = polygonBounds.Width; polygon.Height = polygonBounds.Height; polygon.SetValue(Canvas.TopProperty, polygonBounds.Y); polygon.SetValue(Canvas.LeftProperty, polygonBounds.X); polygon.Points = pointCollection; polygon.Stretch = Stretch.Fill; series.Faces.Visual = polygon; radarCanvas.Children.Add(polygon); } }
private IEnumerable <AreaChart> GenerateLineCharts() { var linear = new AreaChart(GetXValues(), GetYValuesLinearly()) { ChartColor = SKColors.Red }; var random = new AreaChart(GetXValues(), Random(100).OrderBy(x => x)) { ChartColor = SKColors.Green }; var trigValues = Trigonometric(); var sineCurve = new AreaChart(trigValues.Item1, trigValues.Item2) { ChartColor = SKColors.Yellow }; return(new List <AreaChart> { linear, random, sineCurve }); }
public AreaChart FacultyAreaGraph(string faculty) { var grad = ctx.Graduates.Where(x => x.Faculty.FacultyName == faculty) .GroupBy(g => g.FinishTime.Year) .OrderByDescending(f => f.Key).ToList() .Take(6).ToList(); var leaves = ctx.Leaves.Where(x => x.Faculty.FacultyName == faculty) .GroupBy(g => g.LeavedDate.Year) .OrderByDescending(f => f.Key).ToList() .Take(6).ToList(); var area_chart = new AreaChart() { Labels = grad.Select(x => $"\"{x.Key}\"").Reverse().ToList(), Data1 = grad.Select(x => x.Count()).Reverse().ToList(), Data2 = leaves.Select(x => x.Count()).Reverse().ToList(), CanvasName = "comparison", Legend = true }; return(area_chart); }
// Acción que determina que clase utilitzar para crear los "Charts" public void CrearChart(Button button, Label label = null) { ClearLastElements(); BaseChart.Chart.Series.RemoveAllSeries(); //Themes.RefreshTheme(); Themes.BasicAxes(BaseChart.Chart.Axes.Left, BaseChart.Chart.Axes.Right); Themes.AplicarTheme(BaseChart); switch (button.Text) { case "Line": lineChart = new LineChart(BaseChart); break; case "Column Bar": columnBarChart = new ColumnBarChart(BaseChart); break; case "Area": areaChart = new AreaChart(BaseChart); break; case "Pie": pieChart = new PieChart(BaseChart); break; case "Fast Line": fastLineChart = new FastLineChart(BaseChart); break; case "Horizontal Area": horizAreaChart = new HorizontalAreaChart(BaseChart); break; case "Horizontal Bar": horizBarChart = new HorizontalBarChart(BaseChart); break; case "Horizontal Line": horizLineChart = new HorizontalLineChart(BaseChart); break; case "Donut": donutChart = new DonutChart(BaseChart); break; case "Bubble": bubbleChart = new BubbleChart(BaseChart); break; case "Shape": shapeChart = new ShapeChart(BaseChart); break; case "Gantt": gantChart = new GanttChart(BaseChart); break; case "Point/Scatter": point_scatterChart = new Point_ScatterChart(BaseChart); break; case "Interpolating Line": interpolatingChart = new InterpolatingChartFeatures(BaseChart); break; case "Bar Styles": coneBarChart = new BarStylesChartFeatures(BaseChart); break; case "Zoom & Panning": zoomPaningArrowChart = new ZoomPanningChartFeatures(BaseChart); break; case "Bar Gradient": gradientBarChart = new GradientBarChartFeatures(BaseChart); break; case "Bubble Transparent": bubbleTranspChart = new BubbleTransparencyChartFeatures(BaseChart); break; case "Real Time": fLineRealTimeChart = new FLineRealTimeChartFeatures(BaseChart); break; case "Stack Area": stackAreaChart = new StackAreaChartFeatures(BaseChart); break; case "Multiple Pies": multiPiesChart = new MultiplePiesChartFeatures(BaseChart); break; case "Semi-Pie": semiPieChart = new Semi_PieChartFeatures(BaseChart); break; case "Semi-Donut": semiDonutChart = new Semi_DonutChartFeatures(BaseChart); break; case "Arrow": arrowChart = new ArrowChart(BaseChart); break; case "Polar": polarChart = new PolarChart(BaseChart); break; case "Radar": radarChart = new RadarChart(BaseChart); break; case "Pyramid": pyramidChart = new PyramidChart(BaseChart); break; case "Candle": candleChart = new CandleChart(BaseChart); break; case "Histogram": histogramChart = new HistogramChart(BaseChart); break; case "Error": errorChart = new ErrorChart(BaseChart); break; case "ErrorBar": errorBarChart = new ErrorBarChart(BaseChart); break; case "Funnel": funnelChart = new FunnelChart(BaseChart); break; case "Smith": smithChart = new SmithChart(BaseChart); break; case "Bezier": bezierChart = new BezierChart(BaseChart); break; case "HighLow": highLowChart = new HighLowChart(BaseChart); break; case "Speed Time": realTimeChart = new SpeedTimeChart(BaseChart); break; case "Waterfall": waterfallChart = new WaterfallChart(BaseChart); break; case "Volume": volumeChart = new VolumeChart(BaseChart); break; case "Color Grid": colorGridChart = new ColorGridChart(BaseChart); break; case "Polar Bar": polarBarChart = new PolarBarChart(BaseChart); break; case "Inverted Pyramid": invertedPyramidChart = new InvertedPyramidChart(BaseChart); break; case "Horizontal Histogram": horizHistogramChart = new HorizHistogramChart(BaseChart); break; case "Circular Gauge": basicCircGaugeChart = new BasicCircularGaugeChart(BaseChart); break; case "Car Fuel": carFuelChart = new CarFuelChart(BaseChart); break; case "Custom Hand": custPointerGaugeChart = new CustomPointerChart(BaseChart); break; case "Acceleration": accelerationCircularGaugeChart = new AccelerationCircularGaugeChart(BaseChart); break; case "Knob Gauge": basicKnobGaugeChart = new BasicKnobGaugeChart(BaseChart); break; case "Temperature Knob": temperatureKnobChart = new TemperatureKnobChart(BaseChart); break; case "Compass": try { compassChart = new CompassChart(BaseChart); } catch (Exception e) { } break; case "Map GIS": mapGSIChart = new MapGISChart(BaseChart); break; case "World Map": worldMapChart = new WorldMapChart(BaseChart); break; case "TreeMap": treeMapChart = new TreeMapChart(BaseChart); break; case "Basic Clock": basicClockChart = new BasicClockChart(BaseChart); break; case "Custom Clock": customClockChart = new CustomClockChart(BaseChart); break; case "Organizational Chart": basicOrganizationalChart = new BasicOrganizationalChart(BaseChart); break; case "Numeric Gauge": numericGaugeChart = new NumericGaugeChart(BaseChart); break; case "Linear Gauge": linearGaugeChart = new LinearGaugeChart(BaseChart); break; case "Scales": scalesLinearChart = new ScalesLinearChart(BaseChart); break; case "SubLines": moreLinesLinearChart = new MoreLinesLinearChart(BaseChart); break; case "Mobile Battery": batteryLinearChart = new BatteryLinearChart(BaseChart); break; case "Basic Calendar": basicCalendarChart = new BasicCalendarChart(BaseChart, label); break; case "Special Dates": specialDatesChart = new SpecialDatesChart(BaseChart, label); break; case "TagCloud": tagCloudChart = new TagCloudChart(BaseChart); break; case "Add": addStdFunctionsChart = new AddStdFunctionsChart(BaseChart); break; case "Subtract": subtStdFunctionsChart = new SubtStdFunctionsChart(BaseChart); break; case "Multiply": multStdFunctionsChart = new MultStdFunctionsChart(BaseChart); break; case "Divide": divStdFunctionsChart = new DivStdFunctionsChart(BaseChart); break; case "Count": countStdFunctionsChart = new CountStdFunctionsChart(BaseChart); break; case "Average": avgStdFunctionsChart = new AvgStdFunctionsChart(BaseChart); break; case "High": highStdFunctionsChart = new HighStdFunctionsChart(BaseChart); break; case "Low": lowStdFunctionsChart = new LowStdFunctionsChart(BaseChart); break; case "Median Function": medianStdFunctionsChart = new MedianStdFunctionsChart(BaseChart); break; case "Percent Change": percentStdFunctionsChart = new PercentStdFunctionsChart(BaseChart); break; case "ADX": adxProFunctionChart = new ADXProFunctionChart(BaseChart); break; case "AC": acProFunctionChart = new ACProFunctionChart(BaseChart); break; case "Alligator": alligatorProFunctionChart = new AlligatorProFunctionChart(BaseChart); break; case "AO": aoProFunctionChart = new AOProFunctionChart(BaseChart); break; case "ATR": atrProFunctionChart = new ATRProFunctionChart(BaseChart); break; case "Bollinger Bands": bollingerProFunctionChart = new BollingerProFunctionChart(BaseChart); break; case "CCI": cciProFunctionChart = new CCIProFunctionChart(BaseChart); break; case "CLV": clvProFunctionChart = new CLVProFunctionChart(BaseChart); break; case "Compression OHLC": compressionOHLCProFunctionChart = new CompressionOHLCProFunctionChart(BaseChart); break; case "Exp. Average": expAverageProFunctionChart = new ExpAverageProFunctionChart(BaseChart); break; case "Exp. Moving Average": expMovAverageProFunctionChart = new ExpMovAverageProFunctionChart(BaseChart); break; case "Gator Oscillator": gatorOscillProFunctionChart = new GatorOscillProFunctionChart(BaseChart); break; case "Kurtosis": kurtosisProFunctionChart = new KurtosisProFunctionChart(BaseChart); break; case "MACD": macdProFunctionChart = new MACDProFunctionChart(BaseChart); break; case "Momentum": momentumProFunctionChart = new MomentumProFunctionChart(BaseChart); break; case "Momentum Div.": momentumDivProFunctionChart = new MomentumDivProFunctionChart(BaseChart); break; case "Money Flow": moneyFlowProFunctionChart = new MoneyFlowProFunctionChart(BaseChart); break; case "OBV": obvProFunctionChart = new OBVProFunctionChart(BaseChart); break; case "PVO": pvoProFunctionChart = new PVOProFunctionChart(BaseChart); break; case "RSI": rsiProFunctionChart = new RSIProFunctionChart(BaseChart); break; case "RVI": rviProFunctionChart = new RVIProFunctionChart(BaseChart); break; case "Slope": slopeProFunctionChart = new SlopeProFunctionChart(BaseChart); break; case "Smoothed Mov Avg": smoothMovAvgProFunctionChart = new SmoothMovAvgProFunctionChart(BaseChart); break; case "S.A.R.": sarProFunctionChart = new SARProFunctionChart(BaseChart); break; case "Cross Point": crossPointsProFunctionsChart = new CrossPointsProFunctionsChart(BaseChart); break; case "Correlation": correlationProFunctionChart = new CorrelationProFunctionChart(BaseChart); break; case "Cumulative": cumulativeProFunctionChart = new CumulativeProFunctionChart(BaseChart); break; case "Custom Function": calculateEventProFunctionChart = new CalculateEventProFunctionChart(BaseChart); break; case "Exponential Trend": exponentialTrendProFunctionChart = new ExponentialTrendProFunctionChart(BaseChart); break; case "Fitting Linearizable": fittingProFunctionChart = new FittingProFunctionChart(BaseChart); break; case "Performance": performanceProFunctionChart = new PerformanceProFunctionChart(BaseChart); break; case "Perimeter": perimeterProFunctionChart = new PerimeterProFunctionChart(BaseChart); break; case "Finding Coefficients": findCoeffProFunctionChart = new FindCoeffProFunctionChart(BaseChart); break; case "Down Sampling": downSamplingProFunctionChart = new DownSamplingProFunctionChart(BaseChart); break; case "RMS": rmsProFunctionChart = new RMSProFunctionChart(BaseChart); break; case "Smoothing Function": smoothingProFunctionChart = new SmoothingProFunctionChart(BaseChart); break; case "Standard Deviation": stdDeviationProFunctionChart = new StdDeviationProFunctionChart(BaseChart); break; case "Trendline": trendlineProFunctionChart = new TrendlineProFunctionChart(BaseChart); break; case "Variance": varianceProFunctionChart = new VarianceProFunctionChart(BaseChart); break; case "SPC": spcProFunctionChart = new SPCProFunctionChart(BaseChart); break; case "Cumulative Histogram": cumulativeHistogProFunctionChart = new CumulativeHistogProFunctionChart(BaseChart); break; case "Skewness": skewnessProFunctionChart = new SkewnessProFunctionChart(BaseChart); break; } Themes.AplicarOptions(BaseChart); }
public static Chart CreateChart(ChartType type, ChartModel model) { Chart chart = null; if (type == ChartType.VBAR || type == ChartType.VBAR_STACKED || type == ChartType.BAR_LINE_COMBO || type == ChartType.BAR_AREA_COMBO || type == ChartType.BAR_LINE_AREA_COMBO) { chart = new BarChart(type, model); } else if (type == ChartType.HBAR || type == ChartType.HBAR_STACKED) { chart = new HorizontalBarChart(type, model); } else if( type == ChartType.CYLINDERBAR) { chart = new CylinderBarChart(type, model); } else if (type == ChartType.PIE) { chart = new PieChart(type, model); } else if (type == ChartType.AREA || type == ChartType.AREA_STACKED) { chart = new AreaChart(type, model); } else if (type == ChartType.LINE) { chart = new LineChart(type, model); } else if (type == ChartType.SCATTER_PLOT) { chart = new ScatterPlotChart(type, model); } else if (type == ChartType.XYLINE) { chart = new XYLineChart(type, model); } else if (type == ChartType.RADAR || type == ChartType.RADAR_AREA) { chart = new RadarChart(type, model); } else if (type == ChartType.FUNNEL) { chart = new FunnelChart(type, model); } else if (type == ChartType.SEMI_CIRCULAR_GAUGE) { chart = new SemiCircularGaugeChart(type, model); } else if (type == ChartType.CIRCULAR_GAUGE) { chart = new GaugeChart(type, model); } else if (type == ChartType.CANDLE_STICK) { chart = new CandleStickChart(type, model); } return chart; }
protected override void Dispose(bool disposing) { AreaChart.Dispose(); base.Dispose(disposing); }
internal static void UpdateVisualObject(RenderAs chartType, Visifire.Commons.ObservableObject sender, VcProperties property, object newValue, Boolean isAXisChanged) { Boolean isDataPoint = sender.GetType().Equals(typeof(DataPoint)); DataPoint dataPoint = sender as DataPoint; Chart chart = (sender as ObservableObject).Chart as Chart; switch (chartType) { case RenderAs.Column: case RenderAs.Bar: ColumnChart.Update(sender, property, newValue, isAXisChanged); //ColumnChart.GetVisualObjectForColumnChart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; // renderedCanvas = BarChart.GetVisualObjectForBarChart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); case RenderAs.Line: //if (isAXisChanged && isDataPoint && chart._partialUpdateAnimation) //{ foreach (DataSeries ds in chart.Series) // { // //if (ds == dataPoint.Parent) // // continue; // foreach (DataPoint dp in ds.DataPoints) // { // RenderHelper.UpdateVisualObject(ds.RenderAs, dp, property, newValue, false); // } // } //} //else // LineChart.Update(sender, property, newValue); LineChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.Point: PointChart.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = PointChart.GetVisualObjectForPointChart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.Bubble: BubbleChart.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = BubbleChart.GetVisualObjectForBubbleChart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.Area: AreaChart.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = AreaChart.GetVisualObjectForAreaChart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.StackedColumn: ColumnChart.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = ColumnChart.GetVisualObjectForStackedColumnChart(width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.StackedColumn100: ColumnChart.Update(sender, property, newValue, isAXisChanged); // renderedCanvas = ColumnChart.GetVisualObjectForStackedColumn100Chart(width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.StackedBar: ColumnChart.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = BarChart.GetVisualObjectForStackedBarChart(width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.StackedBar100: ColumnChart.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = BarChart.GetVisualObjectForStackedBar100Chart(width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.Pie: //renderedCanvas = PieChart.GetVisualObjectForPieChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled); break; case RenderAs.Doughnut: //renderedCanvas = PieChart.GetVisualObjectForDoughnutChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled); break; case RenderAs.StackedArea: //renderedCanvas = AreaChart.GetVisualObjectForStackedAreaChart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.StackedArea100: //renderedCanvas = AreaChart.GetVisualObjectForStackedArea100Chart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.SectionFunnel: //renderedCanvas = FunnelChart.GetVisualObjectForFunnelChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled, false); break; case RenderAs.StreamLineFunnel: //renderedCanvas = FunnelChart.GetVisualObjectForFunnelChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled, true); break; case RenderAs.Stock: StockChart.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = StockChart.GetVisualObjectForStockChart(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.CandleStick: CandleStick.Update(sender, property, newValue, isAXisChanged); //renderedCanvas = CandleStick.GetVisualObjectForCandleStick(width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; } chart.ChartArea.AttachScrollEvents(); }
internal static Panel GetVisualObject(Panel preExistingPanel, RenderAs chartType, Double width, Double height, PlotDetails plotDetails, List <DataSeries> dataSeriesList4Rendering, Chart chart, Double plankDepth, bool animationEnabled) { Panel renderedCanvas = null; switch (chartType) { case RenderAs.Column: renderedCanvas = ColumnChart.GetVisualObjectForColumnChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.Bar: renderedCanvas = ColumnChart.GetVisualObjectForColumnChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); //renderedCanvas = BarChart.GetVisualObjectForBarChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.Line: renderedCanvas = LineChart.GetVisualObjectForLineChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.Point: renderedCanvas = PointChart.GetVisualObjectForPointChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.Bubble: renderedCanvas = BubbleChart.GetVisualObjectForBubbleChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.Area: renderedCanvas = AreaChart.GetVisualObjectForAreaChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.StackedColumn: renderedCanvas = ColumnChart.GetVisualObjectForStackedColumnChart(chartType, preExistingPanel, width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.StackedColumn100: renderedCanvas = ColumnChart.GetVisualObjectForStackedColumnChart(chartType, preExistingPanel, width, height, plotDetails, chart, plankDepth, animationEnabled); //renderedCanvas = ColumnChart.GetVisualObjectForStackedColumn100Chart(width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.StackedBar: renderedCanvas = BarChart.GetVisualObjectForStackedBarChart(chartType, preExistingPanel, width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.StackedBar100: renderedCanvas = BarChart.GetVisualObjectForStackedBarChart(chartType, preExistingPanel, width, height, plotDetails, chart, plankDepth, animationEnabled); // renderedCanvas = BarChart.GetVisualObjectForStackedBar100Chart(width, height, plotDetails, chart, plankDepth, animationEnabled); break; case RenderAs.Pie: renderedCanvas = PieChart.GetVisualObjectForPieChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled); break; case RenderAs.Doughnut: renderedCanvas = PieChart.GetVisualObjectForDoughnutChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled); break; case RenderAs.StackedArea: renderedCanvas = AreaChart.GetVisualObjectForStackedAreaChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.StackedArea100: renderedCanvas = AreaChart.GetVisualObjectForStackedArea100Chart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.SectionFunnel: renderedCanvas = FunnelChart.GetVisualObjectForFunnelChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled, false); break; case RenderAs.StreamLineFunnel: renderedCanvas = FunnelChart.GetVisualObjectForFunnelChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled, true); break; case RenderAs.Stock: renderedCanvas = StockChart.GetVisualObjectForStockChart(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; case RenderAs.CandleStick: renderedCanvas = CandleStick.GetVisualObjectForCandleStick(preExistingPanel, width, height, plotDetails, dataSeriesList4Rendering, chart, plankDepth, animationEnabled); break; } return(renderedCanvas); }
public async Task <JsonResult> GetBurndownChart() { var sprintId = SelectedSprintId; var sprint = await db.Sprints .FindAsync(sprintId); //var team = await db.Teams // .Include(t => t.TeamMembers) // .FirstOrDefaultAsync(t => !t.Erased && t.ProjectId == SelectedProjectId); //var teamDailyCapacity = team.TeamMembers // .Where(t => !t.Erased) // .Sum(t => t.Capacity); int totalWorkLoad = await db.Tasks .Where(t => !t.Erased && t.SprintId == sprintId && !(t.BacklogItem is Test)) .SumAsync(t => t.EstimatedTime); var workableDates = new List <DateTime>(); var sprintDuration = (int)(sprint.EndDate - sprint.StartDate).TotalDays; for (int i = 0; i <= sprintDuration; i++) { var date = sprint.StartDate.AddDays(i); if (!(date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday)) { workableDates.Add(date); } } var actualSprintDuration = 1; if (workableDates.Count > 1) { actualSprintDuration = workableDates.Count - 1; } var sprintTaskUpdates = await db.TaskUpdates .Where(u => !u.Erased && u.Task.SprintId == sprintId && !(u.Task.BacklogItem is Test) && u.EventDate >= sprint.StartDate && u.EventDate <= sprint.EndDate) .ToListAsync(); float idealDailyBurn = 0; if (workableDates.Count > 0) { //idealDailyBurn = (int)Math.Ceiling(totalWorkLoad / (actualSprintDuration * 1.0f)); idealDailyBurn = totalWorkLoad / (actualSprintDuration * 1.0f); } var idealBurn = new List <int>(); var actualBurn = new List <int>(); var burned = totalWorkLoad; for (int i = 0; i < workableDates.Count; i++) { var date = workableDates[i]; //Ideal if (totalWorkLoad - i * idealDailyBurn > 0) { idealBurn.Add((int)Math.Ceiling(totalWorkLoad - i * idealDailyBurn)); } else { idealBurn.Add(0); } //Actual burned -= sprintTaskUpdates .Where(u => u.EventDate.Date == date) .Sum(u => u.ElapsedTime); if (burned < 0) { burned = 0; } actualBurn.Add(burned); } var series = new List <Series>(); series.Add(new Series { data = idealBurn.ToArray(), name = "Ideal burn" }); series.Add(new Series { data = actualBurn.ToArray(), name = "Actual burn" }); AreaChart areachart = null; areachart = new AreaChart { chart = new Chart { type = "areaspline" }, title = new Title { text = "" }, //subtitle = new Subtitle //{ // text = "" //}, xAxis = new Xaxis { //allowDecimals = false, title = new Title { text = "Fecha" }, labels = new Labels { format = "{value}" }, categories = workableDates.Select(d => d.ToString("{dd/MM}")).ToArray() }, yAxis = new Yaxis { title = new Title { text = "Horas" }, labels = new Labels { format = "{value}" } }, tooltip = new Tooltip { pointFormat = "{point.y} horas" }, plotOptions = new Plotoptions { area = new Area { pointStart = 0, marker = new Marker { enabled = false, symbol = "circle", radius = 2, states = new States { hover = new Hover { enabled = true } } } } }, series = series.ToArray(), exporting = Exportable.GetDefault("Burndown"), }; return(Json(areachart, JsonRequestBehavior.AllowGet)); }
internal static void UpdateVisualObject(RenderAs chartType, Visifire.Commons.ObservableObject sender, VcProperties property, object newValue, Boolean isAXisChanged) { Boolean isDataPoint = sender.GetType().Equals(typeof(DataPoint)); DataPoint dataPoint = sender as DataPoint; Chart chart = (sender as ObservableObject).Chart as Chart; switch (chartType) { case RenderAs.Column: case RenderAs.Bar: ColumnChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.Line: case RenderAs.Spline: LineChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.QuickLine: QuickLineChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.StepLine: StepLineChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.Point: PointChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.Bubble: BubbleChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.Area: AreaChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.StackedColumn: ColumnChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.StackedColumn100: ColumnChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.StackedBar: ColumnChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.StackedBar100: ColumnChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.Pie: //renderedCanvas = PieChart.GetVisualObjectForPieChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled); break; case RenderAs.Doughnut: //renderedCanvas = PieChart.GetVisualObjectForDoughnutChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled); break; case RenderAs.StackedArea: List <DataSeries> stackedAreaList = (from ds in chart.Series where ds.RenderAs == RenderAs.StackedArea select ds).ToList(); if (stackedAreaList.Count > 0) { ColumnChart.Update(chart, stackedAreaList[0].RenderAs, stackedAreaList); } chart.ChartArea.AttachEventsToolTipHref2DataSeries(); break; case RenderAs.StackedArea100: List <DataSeries> stackedArea100List = (from ds in chart.Series where ds.RenderAs == RenderAs.StackedArea select ds).ToList(); if (stackedArea100List.Count > 0) { ColumnChart.Update(chart, stackedArea100List[0].RenderAs, stackedArea100List); } chart.ChartArea.AttachEventsToolTipHref2DataSeries(); break; case RenderAs.SectionFunnel: case RenderAs.StreamLineFunnel: case RenderAs.Pyramid: //renderedCanvas = FunnelChart.GetVisualObjectForFunnelChart(width, height, plotDetails, dataSeriesList4Rendering, chart, animationEnabled, true); break; case RenderAs.Stock: StockChart.Update(sender, property, newValue, isAXisChanged); break; case RenderAs.CandleStick: CandleStick.Update(sender, property, newValue, isAXisChanged); break; } //chart.ChartArea.AttachScrollEvents(); }