コード例 #1
0
ファイル: Animation.aspx.cs プロジェクト: tforsberg/z
        private void LoadRandomSeriesList()
        {
            C1LineChart1.SeriesList.Clear();

            LineChartSeries series = new LineChartSeries();
            series.Markers.Visible = true;
            series.Markers.Type = MarkerType.Circle;
            series.FitType = LineChartFitType.Spline;

            C1LineChart1.SeriesList.Add(series);

            series.Data.X = new ChartXAxisList();
            series.Data.X.Add("Jan");
            series.Data.X.Add("Feb");
            series.Data.X.Add("Mar");
            series.Data.X.Add("Apr");
            series.Data.X.Add("May");
            series.Data.X.Add("Jun");
            series.Data.X.Add("Jul");
            series.Data.X.Add("Aug");
            series.Data.X.Add("Sep");
            series.Data.X.Add("Oct");
            series.Data.X.Add("Nov");
            series.Data.X.Add("Dec");

            Random random = new Random(DateTime.Now.Second);

            series.Data.Y = new ChartYAxisList();
            for (int i = 0; i < 12; i++)
            {
                series.Data.Y.Add(random.NextDouble() * 100);
            }
        }
コード例 #2
0
        /// <summary>
        /// Modify/Add data into chart XML
        /// </summary>
        /// <param name="column_index">Corresponds to the column index that needs to be modified in chart spreadsheet (Ex: A, B, C, ...)</param>
        /// <param name="row_index">Corresponds to the column index that needs to be modified in excel </param>
        /// <param name="new_value">Corresponds to the new value we need to insert to the cell </param>
        protected override void ModifyChartXML_Data(string column_index, uint row_index, string new_value)
        {
            LineChartSeries linechart_series = chart_part.ChartSpace.Descendants <LineChartSeries>().Where(s => string.Compare(s.InnerText, worksheet_name + "!$" + column_index + "$1", true) > 0).First();

            DocumentFormat.OpenXml.Drawing.Charts.Values v = linechart_series.Descendants <DocumentFormat.OpenXml.Drawing.Charts.Values>().FirstOrDefault();
            NumberReference nr = v.Descendants <NumberReference>().First();
            NumberingCache  nc = nr.Descendants <NumberingCache>().First();

            try
            {
                NumericPoint np = nc.Descendants <NumericPoint>().ElementAt((int)row_index - 2);
                NumericValue nv = np.Descendants <NumericValue>().First();
                nv.Text = new_value;
            }
            catch (Exception)
            {
                // Create new data and append to previous XML
                nc.PointCount.Val = nc.PointCount.Val + 1;
                NumericValue nv = new NumericValue(new_value);
                NumericPoint np = new NumericPoint(nv);
                np.Index = (uint)nc.Descendants <NumericPoint>().ToList().Count;
                nc.Append(np);

                // Change fomula range
                DocumentFormat.OpenXml.Drawing.Charts.Formula f = nr.Descendants <DocumentFormat.OpenXml.Drawing.Charts.Formula>().FirstOrDefault();
                f.Text = worksheet_name + "!$" + column_index + "$2:$" + column_index + "$" + GetRowIndexByNum((int)row_index - 2).ToString();
            }
        }
コード例 #3
0
ファイル: Overview.aspx.cs プロジェクト: ash2005/z
    private void PrepareOptions()
    {
        var valuesX = new List <DateTime?>()
        {
            new DateTime(2010, 10, 27, 11, 48, 0), new DateTime(2010, 10, 27, 13, 47, 0), new DateTime(2010, 10, 27, 15, 46, 0), new DateTime(2010, 10, 27, 17, 45, 0),
            new DateTime(2010, 10, 27, 19, 44, 0), new DateTime(2010, 10, 27, 21, 43, 0), new DateTime(2010, 10, 27, 23, 41, 0), new DateTime(2010, 10, 28, 1, 40, 0), new DateTime(2010, 10, 28, 3, 39, 0),
            new DateTime(2010, 10, 28, 5, 38, 0), new DateTime(2010, 10, 28, 7, 37, 0), new DateTime(2010, 10, 28, 9, 36, 0), new DateTime(2010, 10, 28, 11, 35, 0), new DateTime(2010, 10, 28, 13, 34, 0),
            new DateTime(2010, 10, 28, 15, 33, 0), new DateTime(2010, 10, 28, 17, 32, 0), new DateTime(2010, 10, 28, 19, 31, 0), new DateTime(2010, 10, 28, 21, 30, 0), new DateTime(2010, 10, 28, 23, 38, 0),
            new DateTime(2010, 10, 29, 1, 27, 0), new DateTime(2010, 10, 29, 3, 26, 0), new DateTime(2010, 10, 29, 5, 25, 0), new DateTime(2010, 10, 29, 7, 24, 0), new DateTime(2010, 10, 29, 9, 23, 0), new DateTime(2010, 10, 29, 11, 22, 0)
        };
        var valuesY = new List <double?>()
        {
            2665513, 2300921, 1663229, 1622528, 1472847, 1354026, 1348909, 1514946, 1746392, 2020481, 2312976, 2539210, 2657505, 2369938, 1869805, 1648695, 1529983, 1398148, 1389668, 1568134, 1787466, 2101460, 2090771, 2351994, 2537400
        };

        //serieslist
        var series = new LineChartSeries();

        this.LineChartExtender1.SeriesList.Add(series);
        series.FitType         = LineChartFitType.Spline;
        series.Markers.Visible = true;
        series.Markers.Type    = MarkerType.Circle;
        series.Data.X.AddRange(valuesX.ToArray <DateTime?>());
        series.Data.Y.AddRange(valuesY.ToArray <double?>());
        series.Label       = "Steam";
        series.LegendEntry = true;
    }
コード例 #4
0
ファイル: ChartUtils.cs プロジェクト: smarza/rbk-api-modules
        internal static async Task<List<LineChartSeries>> BuildChartData(IDiagnosticsModuleStore context, DateTime from, DateTime to, Func<DiagnosticsEntry, string> propertyFilter,
                Func<DiagnosticsEntry, string> nameFunction)
        {
            var results = new List<LineChartSeries>();

            var data = await context.FilterAsync(from, to, null, null, null, null, null, null, null, null, null, null, null, null);

            var groupedSeries = data.GroupBy(propertyFilter).ToList();

            foreach (var seriesData in groupedSeries)
            {
                var series = new LineChartSeries(nameFunction(seriesData.First()));

                foreach (var date in ChartingUtilities.BuildLineChartAxis(from, to))
                {
                    series.Data.Add(date);
                }

                var groupedData = seriesData.GroupBy(x => x.Timestamp.Date).ToList();

                foreach (var itemData in groupedData)
                {
                    var date = itemData.Key;
                    var errors = itemData.Count();

                    var point = series.Data.First(x => x.Date == date);

                    point.Value = errors;
                }

                results.Add(series);
            }

            return results;
        }
コード例 #5
0
ファイル: Animation.aspx.cs プロジェクト: ash2005/z
        private void LoadRandomSeriesList()
        {
            C1LineChart1.SeriesList.Clear();

            LineChartSeries series = new LineChartSeries();

            series.Markers.Visible = true;
            series.Markers.Type    = MarkerType.Circle;
            series.FitType         = LineChartFitType.Spline;

            C1LineChart1.SeriesList.Add(series);

            series.Data.X = new ChartXAxisList();
            series.Data.X.Add("Jan");
            series.Data.X.Add("Feb");
            series.Data.X.Add("Mar");
            series.Data.X.Add("Apr");
            series.Data.X.Add("May");
            series.Data.X.Add("Jun");
            series.Data.X.Add("Jul");
            series.Data.X.Add("Aug");
            series.Data.X.Add("Sep");
            series.Data.X.Add("Oct");
            series.Data.X.Add("Nov");
            series.Data.X.Add("Dec");

            Random random = new Random(DateTime.Now.Second);

            series.Data.Y = new ChartYAxisList();
            for (int i = 0; i < 12; i++)
            {
                series.Data.Y.Add(random.NextDouble() * 100);
            }
        }
コード例 #6
0
        /// <summary>
        /// Задать формулу ряда
        /// </summary>
        /// <param name="series">Ряд значении линейного графика</param>
        /// <param name="newFormulaStr">Новая формула</param>
        /// <returns>true - если формула успешно задана, false - в обратном случае</returns>
        public static bool Values(this LineChartSeries series, string newFormulaStr)
        {
            var newFormula = new Formula()
            {
                Text = newFormulaStr
            };

            return(series.Values(newFormula));
        }
コード例 #7
0
        /// <summary>
        /// Modify/Add series into chart XML
        /// </summary>
        /// <param name="column_index">Corresponds to the column index that needs to be modified in chart spreadsheet (Ex: A, B, C, ...)</param>
        /// <param name="row_index">Corresponds to the column index that needs to be modified in excel </param>
        /// <param name="new_value">Corresponds to the new value we need to insert to the cell </param>
        protected override void ModifyChartXML_Series(string column_index, uint row_index, string new_value)
        {
            LineChartSeries linechart_series = chart_part.ChartSpace.Descendants <LineChartSeries>().Where(s => string.Compare(s.InnerText, worksheet_name + "!$" + column_index + "$1", true) > 0).FirstOrDefault();

            if (linechart_series != null)    // There exists data on the series --> We only need to modify it
            {
                SeriesText      st = linechart_series.Descendants <SeriesText>().FirstOrDefault();
                StringReference sr = st.Descendants <StringReference>().First();
                StringCache     sc = sr.Descendants <StringCache>().First();
                StringPoint     sp = sc.Descendants <StringPoint>().First();
                NumericValue    nv = sp.Descendants <NumericValue>().First();
                nv.Text = new_value;
            }
            else    // No such series exists --> Consider create a new series
            {
                /*
                 * // Find location in XML to append the BarChartSeries
                 * Chart chart = chart_part.ChartSpace.Descendants<Chart>().FirstOrDefault();
                 * PlotArea plot = chart.PlotArea;
                 *
                 * // Create new BarChartSeries
                 * barchart_series = new BarChartSeries();
                 * uint index = (uint)plot.Descendants<BarChartSeries>().ToList().Count;
                 *
                 * barchart_series.Append(new Index() { Val = index });
                 * barchart_series.Append(new Order() { Val = index });
                 *
                 * SeriesText seriesText = new SeriesText();
                 * seriesText.Append(new NumericValue() { Text = new_value });
                 *
                 * barchart_series.Append(seriesText);
                 *
                 *
                 * // Append data
                 * Bar3DChart bar_3dchart = plot.Descendants<Bar3DChart>().FirstOrDefault();
                 * if (bar_3dchart != null)       // Chart is 3D
                 *  bar_3dchart.Append(barchart_series);
                 * else    // Chart is not 3d
                 * {
                 *  BarChart barchart = plot.Descendants<BarChart>().FirstOrDefault();
                 *  barchart.Append(barchart_series);
                 * }
                 *
                 * // Append other settings
                 * BarChartSeries barchart_series_template = chart_part.ChartSpace.Descendants<BarChartSeries>().LastOrDefault();
                 *
                 * CategoryAxisData cateAxisData = new CategoryAxisData();
                 * StringReference string_ref = new StringReference();
                 * string_ref.Append(new DocumentFormat.OpenXml.Drawing.Charts.Formula() { Text = barchart_series.Descendants<DocumentFormat.OpenXml.Drawing.Charts.Formula>().FirstOrDefault().Text});
                 * StringCache string_cache = new StringCache();
                 * string_cache.Append(new PointCount() { Val = count });
                 */
            }
        }
コード例 #8
0
        /// <summary>
        /// Получить формулу значении (горизонтальной) оси
        /// </summary>
        /// <param name="series">Ряд значении линейного графика</param>
        /// <returns>Формула значении оси ряда линейного графика</returns>
        public static Formula AxisValues(this LineChartSeries series)
        {
            var axisData = series.FirstDescendant <CategoryAxisData>();

            if (axisData == null)
            {
                return(null);
            }
            var f = axisData.FirstDescendant <Formula>();

            return(f);
        }
コード例 #9
0
        /// <summary>
        /// Получить формулу значении
        /// </summary>
        /// <param name="series">Ряд значении линейного графика</param>
        /// <returns>Формула значении ряда линейного графика</returns>
        public static Formula Values(this LineChartSeries series)
        {
            var v = series.FirstDescendant <Values>();

            if (v == null)
            {
                return(null);
            }
            var f = v.FirstDescendant <Formula>();

            return(f);
        }
コード例 #10
0
        /// <summary>
        /// Задать название ряда ссылкой на ячейки
        /// </summary>
        /// <param name="series">Ряд значении линейного графика</param>
        /// <param name="newFormula">Формула-ссылка названия ряда</param>
        /// <returns>true - если название успешно задано, false - в обратном случае</returns>
        public static bool Label(this LineChartSeries series, Formula newFormula)
        {
            var seriesText = new SeriesText()
            {
                StringReference = new StringReference()
                {
                    Formula = newFormula
                }
            };

            series.SeriesText = seriesText;
            return(true);
        }
コード例 #11
0
        /// <summary>
        /// Задать формулу значении ряда
        /// </summary>
        /// <param name="series">Ряд значении линейного графика</param>
        /// <param name="newFormula">Новая формула значении</param>
        /// <returns>true - если формула успешно задана, false - в обратном случае</returns>
        public static bool Values(this LineChartSeries series, Formula newFormula)
        {
            var newV = new Values()
            {
                NumberReference = new NumberReference()
                {
                    Formula = newFormula
                }
            };
            var oldV    = series.FirstDescendant <Values>();
            var newElem = oldV.ReplaceBy(newV);

            return(newElem.SameAs(newV));
        }
コード例 #12
0
        /// <summary>
        /// Задать формулу значении (горизонтальной) оси
        /// </summary>
        /// <param name="series">Ряд значении линейного графика</param>
        /// <param name="newFormula">Новая формула значении</param>
        /// <returns>true - если формула успешно задана, false - в обратном случае</returns>
        public static bool AxisValues(this LineChartSeries series, Formula newFormula)
        {
            var oldValues = series.FirstDescendant <CategoryAxisData>();
            var newV      = new CategoryAxisData()
            {
                NumberReference = new NumberReference()
                {
                    Formula = newFormula
                }
            };
            var newElem = oldValues.ReplaceBy(newV);

            return(newElem.SameAs(newV));
        }
コード例 #13
0
ファイル: ExportMode.aspx.cs プロジェクト: ash2005/z
    private void PrepareOptions()
    {
        var valuesX = new List <DateTime?>()
        {
            DateTime.Parse("1/1/2010"),
            DateTime.Parse("2/1/2010"),
            DateTime.Parse("3/1/2010"),
            DateTime.Parse("4/1/2010"),
            DateTime.Parse("5/1/2010"),
            DateTime.Parse("6/1/2010"),
            DateTime.Parse("7/1/2010"),
            DateTime.Parse("8/1/2010"),
            DateTime.Parse("9/1/2010"),
            DateTime.Parse("10/1/2010"),
            DateTime.Parse("11/1/2010"),
            DateTime.Parse("12/1/2010")
        };

        //serieslist Domestic
        var valuesY = new List <double?>()
        {
            1983, 2343, 2593, 2283, 2574, 2838, 2382, 2634, 2938, 2739, 2983, 3493
        };

        var series = new LineChartSeries();

        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = true;
        series.Markers.Type    = MarkerType.Circle;
        series.Data.X.AddRange(valuesX.ToArray <DateTime?>());
        series.Data.Y.AddRange(valuesY.ToArray <double?>());
        series.Label = "Domestic";

        series.LegendEntry = true;

        //serieslist International
        valuesY = new List <double?>()
        {
            574, 636, 673, 593, 644, 679, 593, 139, 599, 583, 602, 690
        };

        series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = true;
        series.Markers.Type    = MarkerType.Circle;
        series.Data.X.AddRange(valuesX.ToArray <DateTime?>());
        series.Data.Y.AddRange(valuesY.ToArray <double?>());
        series.Label       = "International";
        series.LegendEntry = true;
    }
コード例 #14
0
ファイル: Line3DChartEx.cs プロジェクト: sumeethamin/Gama
        /// <summary>
        /// Updates the chart.
        /// </summary>
        /// <param name="chart">The chart.</param>
        /// <param name="sheetName">Name of the sheet.</param>
        protected override void UpdateChart(OpenXmlCompositeElement chart, string sheetName)
        {
            if (chart != null)
            {
                chart.RemoveAllChildren <LineChartSeries>();

                // Index 0 is for category axis data
                for (int index = 1; index < chartData.columnNameToSeries.Count(); index++)
                {
                    string          columnName      = GetExcelColumnName(index);
                    LineChartSeries lineChartSeries = chart.AppendChild <LineChartSeries>(new LineChartSeries());

                    UpdateSeriesText(sheetName, lineChartSeries, columnName, 1, chartData.columnNameToSeries.Skip(index).FirstOrDefault().Key);

                    // Update Category Axis data
                    CategoryAxisData catAxisData = new CategoryAxisData();
                    catAxisData.RemoveAllChildren <StringReference>();
                    catAxisData.RemoveAllChildren <NumberReference>();

                    StringReference catStringReference = GetStringReference(sheetName + "!$A$2:$A$" + (chartData.Count + 1).ToString(), chartData.Count);

                    // Series 0 is for category axis data
                    foreach (string cat in chartData.columnNameToSeries.First().Value)
                    {
                        AddStringPoint(catStringReference.StringCache, catStringReference.StringCache.Descendants <StringPoint>().Count(), cat);
                    }

                    catAxisData.Append(catStringReference);

                    // Update Values
                    NumberingCache  numberingCache;
                    PointCount      pointCount;
                    Values          values    = lineChartSeries.AppendChild <Values>(new Values());
                    NumberReference reference = CreateNumberReference(values, sheetName + "!$" + columnName + "$2:$" + columnName + "$" + (chartData.Count + 1).ToString());

                    SetNumberingCache(reference, out numberingCache, out pointCount);

                    int rowIndex = 0;

                    foreach (var point in chartData.columnNameToSeries.Skip(index).FirstOrDefault().Value)
                    {
                        AddNumericPoint(numberingCache, pointCount, rowIndex, point.ToString());
                        rowIndex += 1;
                    }
                }
            }
        }
コード例 #15
0
    private void LoadSeries()
    {
        string[] months = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
        C1LineChart1.SeriesList.Clear();

        //add line series
        LineChartSeries series = new LineChartSeries();

        series.Markers.Visible = true;
        series.Markers.Type    = MarkerType.Circle;
        series.FitType         = LineChartFitType.Spline;

        C1LineChart1.SeriesList.Add(series);

        //add trendline series
        var seriesT = new LineChartSeries();

        seriesT.IsTrendline                 = true;
        seriesT.Label                       = "Trendline";
        seriesT.TrendlineSeries.FitType     = TrendlineFitType.Polynom;
        seriesT.TrendlineSeries.Order       = 4;
        seriesT.TrendlineSeries.SampleCount = 100;

        this.C1LineChart1.SeriesList.Add(seriesT);

        //add X data
        series.Data.X = new ChartXAxisList();
        series.Data.X.AddRange(months);

        seriesT.TrendlineSeries.Data.X.AddRange(months);

        //add Y data
        Random random = new Random(DateTime.Now.Second);
        double valueY = 0;

        series.Data.Y = new ChartYAxisList();

        for (int i = 0; i < 12; i++)
        {
            valueY = random.NextDouble() * 100;
            series.Data.Y.Add(valueY);

            seriesT.TrendlineSeries.Data.Y.Add(valueY);
        }
    }
コード例 #16
0
ファイル: Trendline.aspx.cs プロジェクト: tforsberg/z
    private void LoadSeries()
    {
        string[] months = new string[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
        C1LineChart1.SeriesList.Clear();

        //add line series
        LineChartSeries series = new LineChartSeries();
        series.Markers.Visible = true;
        series.Markers.Type = MarkerType.Circle;
        series.FitType = LineChartFitType.Spline;

        C1LineChart1.SeriesList.Add(series);

        //add trendline series
        var seriesT = new LineChartSeries();
        seriesT.IsTrendline = true;
        seriesT.Label = "Trendline";
        seriesT.TrendlineSeries.FitType = TrendlineFitType.Polynom;
        seriesT.TrendlineSeries.Order = 4;
        seriesT.TrendlineSeries.SampleCount = 100;

        this.C1LineChart1.SeriesList.Add(seriesT);

        //add X data
        series.Data.X = new ChartXAxisList();
        series.Data.X.AddRange(months);

        seriesT.TrendlineSeries.Data.X.AddRange(months);

        //add Y data
        Random random = new Random(DateTime.Now.Second);
        double valueY = 0;

        series.Data.Y = new ChartYAxisList();

        for (int i = 0; i < 12; i++)
        {
            valueY = random.NextDouble() * 100;
            series.Data.Y.Add(valueY);

            seriesT.TrendlineSeries.Data.Y.Add(valueY);
        }
    }
コード例 #17
0
ファイル: Overview.aspx.cs プロジェクト: tforsberg/z
	private void PrepareOptions()
	{
		var valuesX = new List<DateTime?>(){new DateTime(2010, 10, 27, 11, 48, 0), new DateTime(2010, 10, 27, 13, 47, 0), new DateTime(2010, 10, 27, 15, 46, 0), new DateTime(2010, 10, 27, 17, 45, 0), 
			new DateTime(2010, 10, 27, 19, 44, 0), new DateTime(2010, 10, 27, 21, 43, 0), new DateTime(2010, 10, 27, 23, 41, 0), new DateTime(2010, 10, 28, 1, 40, 0), new DateTime(2010, 10, 28, 3, 39, 0), 
			new DateTime(2010, 10, 28, 5, 38, 0), new DateTime(2010, 10, 28, 7, 37, 0), new DateTime(2010, 10, 28, 9, 36, 0), new DateTime(2010, 10, 28, 11, 35, 0), new DateTime(2010, 10, 28, 13, 34, 0), 
			new DateTime(2010, 10, 28, 15, 33, 0), new DateTime(2010, 10, 28, 17, 32, 0), new DateTime(2010, 10, 28, 19, 31, 0), new DateTime(2010, 10, 28, 21, 30, 0), new DateTime(2010, 10, 28, 23, 38, 0), 
			new DateTime(2010, 10, 29, 1, 27, 0), new DateTime(2010, 10, 29, 3, 26, 0), new DateTime(2010, 10, 29, 5, 25, 0), new DateTime(2010, 10, 29, 7, 24, 0), new DateTime(2010, 10, 29, 9, 23, 0), new DateTime(2010, 10, 29, 11, 22, 0)};
		var valuesY = new List<double?>() { 2665513, 2300921, 1663229, 1622528, 1472847, 1354026, 1348909, 1514946, 1746392, 2020481, 2312976, 2539210, 2657505, 2369938, 1869805, 1648695, 1529983, 1398148, 1389668, 1568134, 1787466, 2101460, 2090771, 2351994, 2537400 };

		//serieslist
		var series = new LineChartSeries();
		this.LineChartExtender1.SeriesList.Add(series);
		series.FitType = LineChartFitType.Spline;
		series.Markers.Visible = true;
		series.Markers.Type = MarkerType.Circle;
		series.Data.X.AddRange(valuesX.ToArray<DateTime?>());
		series.Data.Y.AddRange(valuesY.ToArray<double?>());
		series.Label = "Steam";
		series.LegendEntry = true;
	}
コード例 #18
0
    private void PrepareOptions()
    {
        var valuesX = new List<DateTime?>(){
            DateTime.Parse("1/1/2010"),
            DateTime.Parse("2/1/2010"),
            DateTime.Parse("3/1/2010"),
            DateTime.Parse("4/1/2010"),
            DateTime.Parse("5/1/2010"),
            DateTime.Parse("6/1/2010"),
            DateTime.Parse("7/1/2010"),
            DateTime.Parse("8/1/2010"),
            DateTime.Parse("9/1/2010"),
            DateTime.Parse("10/1/2010"),
            DateTime.Parse("11/1/2010"),
            DateTime.Parse("12/1/2010")};

        //serieslist Domestic
        var valuesY = new List<double?>() { 1983, 2343, 2593, 2283, 2574, 2838, 2382, 2634, 2938, 2739, 2983, 3493 };

        var series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = true;
        series.Markers.Type = MarkerType.Circle;
        series.Data.X.AddRange(valuesX.ToArray<DateTime?>());
        series.Data.Y.AddRange(valuesY.ToArray<double?>());
        series.Label = "Domestic";

        series.LegendEntry = true;

        //serieslist International
        valuesY = new List<double?>() { 574, 636, 673, 593, 644, 679, 593, 139, 599, 583, 602, 690 };

        series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = true;
        series.Markers.Type = MarkerType.Circle;
        series.Data.X.AddRange(valuesX.ToArray<DateTime?>());
        series.Data.Y.AddRange(valuesY.ToArray<double?>());
        series.Label = "International";
        series.LegendEntry = true;
    }
コード例 #19
0
ファイル: SimulateData.aspx.cs プロジェクト: tforsberg/z
	private void PrepareOptions()
	{
		var xValues = new List<double?>();
		var yValues = new List<double?>();
		var randomDataValuesCount = 10;
		var random = new Random();

		for (var i = 0; i < randomDataValuesCount; i++)
		{
			xValues.Add(i);
			yValues.Add(random.Next(0, 100));
		}

		var series = new LineChartSeries();
		this.C1LineChart1.SeriesList.Add(series);
		series.Markers.Visible = true;
		series.Markers.Type = MarkerType.Circle;
		series.Data.X.AddRange(xValues.ToArray<double?>());
		series.Data.Y.AddRange(yValues.ToArray<double?>());
		series.LegendEntry = true;
	}
コード例 #20
0
    private void PrepareOptions()
    {
        var xValues = new List <double?>();
        var yValues = new List <double?>();
        var randomDataValuesCount = 10;
        var random = new Random();

        for (var i = 0; i < randomDataValuesCount; i++)
        {
            xValues.Add(i);
            yValues.Add(random.Next(0, 100));
        }

        var series = new LineChartSeries();

        this.LineChartExtender1.SeriesList.Add(series);
        series.Markers.Visible = true;
        series.Markers.Type    = MarkerType.Circle;
        series.Data.X.AddRange(xValues.ToArray <double?>());
        series.Data.Y.AddRange(yValues.ToArray <double?>());
        series.LegendEntry = true;
    }
コード例 #21
0
        /// <summary>
        /// Получить ссылку на ячейки составляющее названия ряда или номер ряда
        /// </summary>
        /// <param name="series">Ряд значении линейного графика</param>
        /// <returns>Формулу названия или номер ряда</returns>
        public static string Label(this LineChartSeries series)
        {
            var seriesText = series.SeriesText;

            if (seriesText == null || seriesText.FirstChild == null)
            {
                return(null);
            }
            var child = seriesText.FirstChild;

            if (child is StringReference)
            {
                var strRef = child as StringReference;
                return(strRef?.Formula?.Text);
            }
            if (child is NumericValue)
            {
                var numVal = child as NumericValue;
                return(numVal?.Text);
            }
            return(null);
        }
コード例 #22
0
    private void PrepareSeriesList()
    {
        var valuesX = new DateTime?[] { new DateTime(2008, 11, 30), new DateTime(2008, 12, 9), new DateTime(2008, 12, 19), new DateTime(2008, 12, 29), new DateTime(2009, 1, 9), new DateTime(2009, 1, 19), new DateTime(2009, 1, 30), new DateTime(2009, 2, 9), new DateTime(2009, 2, 20), new DateTime(2009, 3, 2), new DateTime(2009, 3, 9), new DateTime(2009, 3, 18), new DateTime(2009, 3, 30), new DateTime(2009, 4, 15), new DateTime(2009, 5, 1), new DateTime(2009, 5, 16), new DateTime(2009, 6, 1), new DateTime(2009, 6, 15), new DateTime(2009, 7, 2), new DateTime(2009, 7, 14), new DateTime(2009, 8, 3), new DateTime(2009, 8, 16), new DateTime(2009, 8, 31), new DateTime(2009, 9, 14), new DateTime(2009, 10, 2), new DateTime(2009, 10, 16), new DateTime(2009, 11, 1), new DateTime(2009, 11, 15), new DateTime(2009, 12, 1), new DateTime(2009, 12, 15), new DateTime(2010, 1, 3), new DateTime(2010, 1, 15), new DateTime(2010, 2, 2), new DateTime(2010, 2, 15), new DateTime(2010, 3, 1), new DateTime(2010, 3, 15), new DateTime(2010, 4, 1), new DateTime(2010, 4, 15), new DateTime(2010, 4, 20), new DateTime(2010, 4, 27), new DateTime(2010, 5, 4), new DateTime(2010, 5, 11), new DateTime(2010, 5, 18), new DateTime(2010, 5, 26), new DateTime(2010, 6, 1), new DateTime(2010, 6, 9), new DateTime(2010, 6, 15), new DateTime(2010, 6, 22), new DateTime(2010, 6, 29), new DateTime(2010, 7, 6), new DateTime(2010, 7, 13), new DateTime(2010, 7, 20), new DateTime(2010, 7, 27), new DateTime(2010, 8, 3), new DateTime(2010, 8, 10), new DateTime(2010, 8, 17), new DateTime(2010, 8, 24), new DateTime(2010, 8, 31), new DateTime(2010, 9, 1), new DateTime(2010, 9, 7), new DateTime(2010, 9, 14), new DateTime(2010, 9, 21), new DateTime(2010, 9, 28), new DateTime(2010, 10, 5), new DateTime(2010, 10, 12), new DateTime(2010, 10, 19), new DateTime(2010, 10, 26), new DateTime(2010, 11, 1), new DateTime(2010, 11, 9), new DateTime(2010, 11, 16), new DateTime(2010, 11, 23), new DateTime(2010, 11, 30), new DateTime(2010, 12, 9), new DateTime(2010, 12, 14), new DateTime(2010, 12, 22), new DateTime(2010, 12, 29), new DateTime(2011, 1, 4), new DateTime(2011, 1, 12), new DateTime(2011, 1, 20), new DateTime(2011, 1, 27), new DateTime(2011, 1, 30), new DateTime(2011, 2, 1), new DateTime(2011, 2, 9), new DateTime(2011, 2, 15), new DateTime(2011, 2, 22), new DateTime(2011, 3, 3), new DateTime(2011, 3, 8), new DateTime(2011, 3, 15), new DateTime(2011, 3, 21), new DateTime(2011, 3, 28), new DateTime(2011, 4, 4), new DateTime(2011, 4, 11), new DateTime(2011, 4, 18), new DateTime(2011, 4, 25), new DateTime(2011, 5, 3), new DateTime(2011, 5, 9), new DateTime(2011, 5, 16), new DateTime(2011, 5, 23), new DateTime(2011, 5, 30), new DateTime(2011, 6, 6), new DateTime(2011, 6, 13), new DateTime(2011, 6, 21), new DateTime(2011, 6, 27), new DateTime(2011, 7, 4), new DateTime(2011, 7, 11), new DateTime(2011, 7, 18), new DateTime(2011, 7, 25), new DateTime(2011, 8, 1), new DateTime(2011, 8, 8), new DateTime(2011, 8, 15), new DateTime(2011, 8, 17), new DateTime(2011, 8, 22), new DateTime(2011, 8, 29), new DateTime(2011, 9, 5), new DateTime(2011, 9, 12), new DateTime(2011, 9, 19), new DateTime(2011, 9, 27), new DateTime(2011, 10, 3), new DateTime(2011, 10, 10), new DateTime(2011, 10, 17) };

        //serieslist 1
        var valuesY = new double?[] { 6.38, 6.54, 6.44, 6.4, 6.36, 6.43, 6.43, 6.07, 6.33, 6.36, 6.65, 6.28, 6.15, 6.14, 5.99, 6.01, 6.12, 6.47, 5.91, 6.14, 6.16, 6.34, 6.36, 6.13, 6.06, 5.88, 5.9, 5.79, 5.61, 5.63, 5.66, 5.58, 5.6, 5.69, 5.6, 5.63, 5.56, 5.5, 5.35, 5.21, 5.27, 5.18, 5.13, 5.19, 5.14, 5.16, 5.15, 5.1, 5.12, 5.06, 5.07, 5.07, 5.11, 5.04, 5.14, 5.29, 5.17, 5.19, 5.25, 5.16, 5.14, 5.11, 5.04, 5, 4.91, 5.03, 4.94, 4.93, 4.82, 4.73, 4.69, 4.69, 4.61, 4.54, 4.67, 4.63, 4.66, 4.58, 4.58, 4.52, 4.57, 4.49, 4.37, 4.29, 4.28, 4.26, 4.25, 4.18, 4.13, 4.12, 4.12, 4.14, 4.07, 4.05, 4.07, 4.07, 4.08, 3.99, 4.05, 4.01, 3.98, 4, 3.93, 3.97, 3.95, 3.93, 3.93, 3.85, 3.81, 3.81, 3.84, 3.82, 3.79, 3.82, 3.82, 3.84, 3.8, 3.8, 3.78, 3.72 };

        var series = new LineChartSeries();

        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = false;
        series.Data.X.AddRange(valuesX);
        series.Data.Y.AddRange(valuesY);
        series.Label = "Top 10,000";

        series.LegendEntry = true;

        //serieslist 2
        valuesY = new double?[] { 4.83, 4.95, 4.87, 4.84, 4.81, 4.87, 4.87, 4.6, 4.79, 4.82, 5.03, 4.76, 4.65, 4.65, 4.53, 4.55, 4.63, 4.9, 4.47, 4.65, 4.66, 4.8, 4.81, 4.64, 4.59, 4.45, 4.47, 4.38, 4.25, 4.27, 4.28, 4.22, 4.24, 4.31, 4.24, 4.27, 4.21, 4.16, 4.05, 4.05, 4.05, 4.02, 4, 4.04, 4.03, 4.01, 3.99, 4.02, 4.02, 4.01, 4.01, 4.01, 4.02, 4.01, 4.1, 4.1, 4.17, 4.18, 4.16, 4.15, 4.14, 4.13, 4.14, 4.12, 4.11, 4.15, 4.08, 4.1, 4.07, 4.05, 4.03, 4.02, 4.01, 3.98, 4, 3.97, 3.95, 3.93, 3.93, 3.92, 3.92, 3.9, 3.88, 3.87, 3.85, 3.82, 3.83, 3.91, 3.89, 3.88, 3.86, 3.85, 3.82, 3.82, 3.8, 3.79, 3.79, 3.77, 3.77, 3.73, 3.73, 3.68, 3.7, 3.7, 3.67, 3.68, 3.67, 3.68, 3.62, 3.61, 3.64, 3.64, 3.64, 3.63, 3.55, 3.54, 3.53, 3.51, 3.5, 3.59 };

        series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = false;
        series.Data.X.AddRange(valuesX);
        series.Data.Y.AddRange(valuesY);
        series.Label       = "Top 10,000";
        series.LegendEntry = true;

        //serieslist 3
        valuesY = new double?[] { 3.4, 3.48, 3.42, 3.41, 3.38, 3.42, 3.42, 3.23, 3.37, 3.39, 3.54, 3.34, 3.27, 3.27, 3.19, 3.2, 3.25, 3.44, 3.14, 3.27, 3.28, 3.37, 3.38, 3.26, 3.23, 3.13, 3.14, 3.08, 2.99, 3, 3.01, 2.97, 2.98, 3.03, 2.98, 3, 2.96, 2.93, 2.85, 2.88, 2.86, 2.86, 2.87, 2.88, 2.87, 2.9, 2.9, 2.91, 2.91, 2.9, 2.9, 2.91, 2.9, 2.89, 2.89, 2.91, 3.15, 3.14, 3.15, 3.14, 3.14, 3.14, 3.15, 3.15, 3.15, 3.16, 3.12, 3.15, 3.14, 3.13, 3.12, 3.11, 3.11, 3.11, 3.11, 3.13, 3.13, 3.13, 3.13, 3.11, 3.11, 3.1, 3.07, 3.06, 3.05, 3.06, 3.04, 3.06, 3.03, 3.05, 3.02, 3.02, 2.99, 2.99, 2.98, 3, 3, 2.97, 3, 2.98, 2.98, 2.98, 2.98, 2.97, 2.94, 2.93, 2.94, 2.92, 2.87, 2.87, 2.97, 2.97, 2.97, 2.97, 2.97, 2.97, 2.96, 2.95, 2.94, 2.94 };

        series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = false;
        series.Data.X.AddRange(valuesX);
        series.Data.Y.AddRange(valuesY);
        series.Label       = "Top Million";
        series.LegendEntry = true;
    }
コード例 #23
0
ファイル: Area.aspx.cs プロジェクト: tforsberg/z
    private void PrepareSeriesList()
    {
        var valuesX = new DateTime?[] { new DateTime(2008, 11, 30), new DateTime(2008, 12, 9), new DateTime(2008, 12, 19), new DateTime(2008, 12, 29), new DateTime(2009, 1, 9), new DateTime(2009, 1, 19), new DateTime(2009, 1, 30), new DateTime(2009, 2, 9), new DateTime(2009, 2, 20), new DateTime(2009, 3, 2), new DateTime(2009, 3, 9), new DateTime(2009, 3, 18), new DateTime(2009, 3, 30), new DateTime(2009, 4, 15), new DateTime(2009, 5, 1), new DateTime(2009, 5, 16), new DateTime(2009, 6, 1), new DateTime(2009, 6, 15), new DateTime(2009, 7, 2), new DateTime(2009, 7, 14), new DateTime(2009, 8, 3), new DateTime(2009, 8, 16), new DateTime(2009, 8, 31), new DateTime(2009, 9, 14), new DateTime(2009, 10, 2), new DateTime(2009, 10, 16), new DateTime(2009, 11, 1), new DateTime(2009, 11, 15), new DateTime(2009, 12, 1), new DateTime(2009, 12, 15), new DateTime(2010, 1, 3), new DateTime(2010, 1, 15), new DateTime(2010, 2, 2), new DateTime(2010, 2, 15), new DateTime(2010, 3, 1), new DateTime(2010, 3, 15), new DateTime(2010, 4, 1), new DateTime(2010, 4, 15), new DateTime(2010, 4, 20), new DateTime(2010, 4, 27), new DateTime(2010, 5, 4), new DateTime(2010, 5, 11), new DateTime(2010, 5, 18), new DateTime(2010, 5, 26), new DateTime(2010, 6, 1), new DateTime(2010, 6, 9), new DateTime(2010, 6, 15), new DateTime(2010, 6, 22), new DateTime(2010, 6, 29), new DateTime(2010, 7, 6), new DateTime(2010, 7, 13), new DateTime(2010, 7, 20), new DateTime(2010, 7, 27), new DateTime(2010, 8, 3), new DateTime(2010, 8, 10), new DateTime(2010, 8, 17), new DateTime(2010, 8, 24), new DateTime(2010, 8, 31), new DateTime(2010, 9, 1), new DateTime(2010, 9, 7), new DateTime(2010, 9, 14), new DateTime(2010, 9, 21), new DateTime(2010, 9, 28), new DateTime(2010, 10, 5), new DateTime(2010, 10, 12), new DateTime(2010, 10, 19), new DateTime(2010, 10, 26), new DateTime(2010, 11, 1), new DateTime(2010, 11, 9), new DateTime(2010, 11, 16), new DateTime(2010, 11, 23), new DateTime(2010, 11, 30), new DateTime(2010, 12, 9), new DateTime(2010, 12, 14), new DateTime(2010, 12, 22), new DateTime(2010, 12, 29), new DateTime(2011, 1, 4), new DateTime(2011, 1, 12), new DateTime(2011, 1, 20), new DateTime(2011, 1, 27), new DateTime(2011, 1, 30), new DateTime(2011, 2, 1), new DateTime(2011, 2, 9), new DateTime(2011, 2, 15), new DateTime(2011, 2, 22), new DateTime(2011, 3, 3), new DateTime(2011, 3, 8), new DateTime(2011, 3, 15), new DateTime(2011, 3, 21), new DateTime(2011, 3, 28), new DateTime(2011, 4, 4), new DateTime(2011, 4, 11), new DateTime(2011, 4, 18), new DateTime(2011, 4, 25), new DateTime(2011, 5, 3), new DateTime(2011, 5, 9), new DateTime(2011, 5, 16), new DateTime(2011, 5, 23), new DateTime(2011, 5, 30), new DateTime(2011, 6, 6), new DateTime(2011, 6, 13), new DateTime(2011, 6, 21), new DateTime(2011, 6, 27), new DateTime(2011, 7, 4), new DateTime(2011, 7, 11), new DateTime(2011, 7, 18), new DateTime(2011, 7, 25), new DateTime(2011, 8, 1), new DateTime(2011, 8, 8), new DateTime(2011, 8, 15), new DateTime(2011, 8, 17), new DateTime(2011, 8, 22), new DateTime(2011, 8, 29), new DateTime(2011, 9, 5), new DateTime(2011, 9, 12), new DateTime(2011, 9, 19), new DateTime(2011, 9, 27), new DateTime(2011, 10, 3), new DateTime(2011, 10, 10), new DateTime(2011, 10, 17) };

        //serieslist 1
        var valuesY = new double?[] { 6.38, 6.54, 6.44, 6.4, 6.36, 6.43, 6.43, 6.07, 6.33, 6.36, 6.65, 6.28, 6.15, 6.14, 5.99, 6.01, 6.12, 6.47, 5.91, 6.14, 6.16, 6.34, 6.36, 6.13, 6.06, 5.88, 5.9, 5.79, 5.61, 5.63, 5.66, 5.58, 5.6, 5.69, 5.6, 5.63, 5.56, 5.5, 5.35, 5.21, 5.27, 5.18, 5.13, 5.19, 5.14, 5.16, 5.15, 5.1, 5.12, 5.06, 5.07, 5.07, 5.11, 5.04, 5.14, 5.29, 5.17, 5.19, 5.25, 5.16, 5.14, 5.11, 5.04, 5, 4.91, 5.03, 4.94, 4.93, 4.82, 4.73, 4.69, 4.69, 4.61, 4.54, 4.67, 4.63, 4.66, 4.58, 4.58, 4.52, 4.57, 4.49, 4.37, 4.29, 4.28, 4.26, 4.25, 4.18, 4.13, 4.12, 4.12, 4.14, 4.07, 4.05, 4.07, 4.07, 4.08, 3.99, 4.05, 4.01, 3.98, 4, 3.93, 3.97, 3.95, 3.93, 3.93, 3.85, 3.81, 3.81, 3.84, 3.82, 3.79, 3.82, 3.82, 3.84, 3.8, 3.8, 3.78, 3.72 };

        var series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = false;
        series.Data.X.AddRange(valuesX);
        series.Data.Y.AddRange(valuesY);
        series.Label = "Top 10,000";

        series.LegendEntry = true;

        //serieslist 2
        valuesY = new double?[] { 4.83, 4.95, 4.87, 4.84, 4.81, 4.87, 4.87, 4.6, 4.79, 4.82, 5.03, 4.76, 4.65, 4.65, 4.53, 4.55, 4.63, 4.9, 4.47, 4.65, 4.66, 4.8, 4.81, 4.64, 4.59, 4.45, 4.47, 4.38, 4.25, 4.27, 4.28, 4.22, 4.24, 4.31, 4.24, 4.27, 4.21, 4.16, 4.05, 4.05, 4.05, 4.02, 4, 4.04, 4.03, 4.01, 3.99, 4.02, 4.02, 4.01, 4.01, 4.01, 4.02, 4.01, 4.1, 4.1, 4.17, 4.18, 4.16, 4.15, 4.14, 4.13, 4.14, 4.12, 4.11, 4.15, 4.08, 4.1, 4.07, 4.05, 4.03, 4.02, 4.01, 3.98, 4, 3.97, 3.95, 3.93, 3.93, 3.92, 3.92, 3.9, 3.88, 3.87, 3.85, 3.82, 3.83, 3.91, 3.89, 3.88, 3.86, 3.85, 3.82, 3.82, 3.8, 3.79, 3.79, 3.77, 3.77, 3.73, 3.73, 3.68, 3.7, 3.7, 3.67, 3.68, 3.67, 3.68, 3.62, 3.61, 3.64, 3.64, 3.64, 3.63, 3.55, 3.54, 3.53, 3.51, 3.5, 3.59 };

        series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = false;
        series.Data.X.AddRange(valuesX);
        series.Data.Y.AddRange(valuesY);
        series.Label = "Top 10,000";
        series.LegendEntry = true;

        //serieslist 3
        valuesY = new double?[] { 3.4, 3.48, 3.42, 3.41, 3.38, 3.42, 3.42, 3.23, 3.37, 3.39, 3.54, 3.34, 3.27, 3.27, 3.19, 3.2, 3.25, 3.44, 3.14, 3.27, 3.28, 3.37, 3.38, 3.26, 3.23, 3.13, 3.14, 3.08, 2.99, 3, 3.01, 2.97, 2.98, 3.03, 2.98, 3, 2.96, 2.93, 2.85, 2.88, 2.86, 2.86, 2.87, 2.88, 2.87, 2.9, 2.9, 2.91, 2.91, 2.9, 2.9, 2.91, 2.9, 2.89, 2.89, 2.91, 3.15, 3.14, 3.15, 3.14, 3.14, 3.14, 3.15, 3.15, 3.15, 3.16, 3.12, 3.15, 3.14, 3.13, 3.12, 3.11, 3.11, 3.11, 3.11, 3.13, 3.13, 3.13, 3.13, 3.11, 3.11, 3.1, 3.07, 3.06, 3.05, 3.06, 3.04, 3.06, 3.03, 3.05, 3.02, 3.02, 2.99, 2.99, 2.98, 3, 3, 2.97, 3, 2.98, 2.98, 2.98, 2.98, 2.97, 2.94, 2.93, 2.94, 2.92, 2.87, 2.87, 2.97, 2.97, 2.97, 2.97, 2.97, 2.97, 2.96, 2.95, 2.94, 2.94 };

        series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = false;
        series.Data.X.AddRange(valuesX);
        series.Data.Y.AddRange(valuesY);
        series.Label = "Top Million";
        series.LegendEntry = true;
    }
コード例 #24
0
ファイル: Sample1.aspx.cs プロジェクト: potchie0o8/DMS
    private void loadLineChart()
    {
        LineChart1.ChartTitle = "Number of Umaapaw na Flush sa Isang Taon";

        LineChartSeries sample = new LineChartSeries();

        decimal[] set1 =
        {
            new decimal(5),
            new decimal(10),
            new decimal(15),
            new decimal(20),
            new decimal(25),
            new decimal(30),
        };

        sample.Data      = set1;
        sample.Name      = "Amiel";
        sample.LineColor = "#000000";

        LineChart1.Series.Add(sample);

        LineChart1.DataBind();
    }
コード例 #25
0
        public ILineChart InitializeFromRange(IRange labelRange, IRange categoryRange)
        {
            uint orderStart = (uint)this.chartSpace.Charts.TakeWhile(c => c != this).Sum(c => c.SeriesCount);

            this.lineChart.RemoveAllChildren <LineChartSeries>();

            IWorksheet worksheet = labelRange.Worksheet;

            if (labelRange.Width == 1 && labelRange.Height > 0 && categoryRange.Height == 1 && categoryRange.Width > 0)
            {
                for (uint labelIndex = 0; labelIndex < labelRange.Height; ++labelIndex)
                {
                    LineChartSeries series = this.lineChart.AppendChild(
                        new LineChartSeries()
                    {
                        Index = new Index()
                        {
                            Val = orderStart + labelIndex
                        },
                        Order = new Order()
                        {
                            Val = orderStart + labelIndex
                        }
                    }
                        );

                    series.AppendChild(
                        new Marker()
                    {
                        Symbol = new Symbol()
                        {
                            Val = MarkerStyleValues.None
                        }
                    }
                        );

                    series.AppendChild(
                        new SeriesText().AppendChildFluent(
                            new StringReference()
                    {
                        Formula     = new Formula(labelRange[0, labelIndex].Reference),
                        StringCache = new StringCache()
                                      .AppendChildFluent(new PointCount()
                        {
                            Val = 1
                        })
                                      .AppendChildFluent(new StringPoint()
                        {
                            Index = 0, NumericValue = new NumericValue()
                            {
                                Text = labelRange[0, labelIndex].InnerValue
                            }
                        })
                    }
                            )
                        );

                    series.AppendChild(
                        new CategoryAxisData().AppendChildFluent(
                            new StringReference()
                    {
                        Formula     = new Formula(categoryRange.Formula),
                        StringCache = new StringCache()
                                      .AppendChildFluent(new PointCount()
                        {
                            Val = (uint)categoryRange.Width.Value
                        })
                                      .AppendFluent(Enumerable.Range(0, categoryRange.Width.Value).Select(categoryIndex => new StringPoint()
                        {
                            Index = (uint)categoryIndex, NumericValue = new NumericValue()
                            {
                                Text = categoryRange[(uint)categoryIndex, 0].InnerValue
                            }
                        }))
                    }
                            )
                        );

                    string valuesFormula = ReferenceEncoder.EncodeRangeReference(
                        worksheet.Name,
                        categoryRange.StartColumn, false,
                        labelRange.StartRow + labelIndex, false,
                        categoryRange.EndColumn, false,
                        labelRange.StartRow + labelIndex, false
                        );

                    series.AppendChild(
                        new Values().AppendChildFluent(
                            new NumberReference()
                    {
                        Formula        = new Formula(valuesFormula),
                        NumberingCache = new NumberingCache()
                                         .AppendChildFluent(new PointCount()
                        {
                            Val = (uint)categoryRange.Width.Value
                        })
                                         .AppendFluent(Enumerable.Range(0, categoryRange.Width.Value).Select(categoryIndex => new NumericPoint()
                        {
                            Index = (uint)categoryIndex, NumericValue = new NumericValue()
                            {
                                Text = worksheet.Cells[categoryRange.StartColumn.Value + (uint)categoryIndex, labelRange.StartRow.Value + labelIndex].InnerValue
                            }
                        }))
                    }
                            )
                        );

                    series.AppendChild(new Smooth()
                    {
                        Val = false
                    });
                }
            }
            else if (labelRange.Height == 1 && labelRange.Width > 0 && categoryRange.Width == 1 && categoryRange.Height > 0)
            {
                for (uint labelIndex = 0; labelIndex < labelRange.Width; ++labelIndex)
                {
                    LineChartSeries series = this.lineChart.AppendChild(
                        new LineChartSeries()
                    {
                        Index = new Index()
                        {
                            Val = orderStart + labelIndex
                        },
                        Order = new Order()
                        {
                            Val = orderStart + labelIndex
                        }
                    }
                        );

                    series.AppendChild(
                        new Marker()
                    {
                        Symbol = new Symbol()
                        {
                            Val = MarkerStyleValues.None
                        }
                    }
                        );

                    series.AppendChild(
                        new SeriesText().AppendChildFluent(
                            new StringReference()
                    {
                        Formula     = new Formula(labelRange[labelIndex, 0].Reference),
                        StringCache = new StringCache()
                                      .AppendChildFluent(new PointCount()
                        {
                            Val = 1
                        })
                                      .AppendChildFluent(new StringPoint()
                        {
                            Index = 0, NumericValue = new NumericValue()
                            {
                                Text = labelRange[labelIndex, 0].InnerValue
                            }
                        })
                    }
                            )
                        );

                    series.AppendChild(
                        new CategoryAxisData().AppendChildFluent(
                            new StringReference()
                    {
                        Formula     = new Formula(categoryRange.Formula),
                        StringCache = new StringCache()
                                      .AppendChildFluent(new PointCount()
                        {
                            Val = (uint)categoryRange.Height.Value
                        })
                                      .AppendFluent(Enumerable.Range(0, categoryRange.Height.Value).Select(categoryIndex => new StringPoint()
                        {
                            Index = (uint)categoryIndex, NumericValue = new NumericValue()
                            {
                                Text = categoryRange[0, (uint)categoryIndex].InnerValue
                            }
                        }))
                    }
                            )
                        );

                    string valuesFormula = ReferenceEncoder.EncodeRangeReference(
                        worksheet.Name,
                        labelRange.StartColumn + labelIndex, false,
                        categoryRange.StartRow, false,
                        labelRange.StartColumn + labelIndex, false,
                        categoryRange.EndRow, false
                        );

                    series.AppendChild(
                        new Values().AppendChildFluent(
                            new NumberReference()
                    {
                        Formula        = new Formula(valuesFormula),
                        NumberingCache = new NumberingCache()
                                         .AppendChildFluent(new PointCount()
                        {
                            Val = (uint)categoryRange.Height.Value
                        })
                                         .AppendFluent(Enumerable.Range(0, categoryRange.Height.Value).Select(categoryIndex => new NumericPoint()
                        {
                            Index = (uint)categoryIndex, NumericValue = new NumericValue()
                            {
                                Text = worksheet.Cells[labelRange.StartColumn.Value + labelIndex, categoryRange.StartRow.Value + (uint)categoryIndex].InnerValue
                            }
                        }))
                    }
                            )
                        );

                    series.AppendChild(new Smooth()
                    {
                        Val = false
                    });
                }
            }
            else
            {
                throw new ArgumentException();
            }

            return(this);
        }
コード例 #26
0
        private void BindChart()
        {
            // line chart is very slow to render when there are lots of data points
            // bar chart is much faster
            zgSales.Visible = false;
            lcSales.Visible = true;
            if (salesByMonthData == null)
            {
                salesByMonthData = CommerceReport.GetSalesByYearMonthByModule(moduleGuid);
            }

            StringBuilder categories = new StringBuilder();

            string         comma   = string.Empty;
            List <decimal> revenue = new List <decimal>();

            // original data is sorted descending on Y, M resorting here
            DataRow[] result = salesByMonthData.Select(string.Empty, "Y ASC, M ASC");

            int spaceInterval = 0;
            int totalItems    = result.Length;
            int itemsAdded    = 0;

            if (totalItems > 12)
            {
                spaceInterval = 4;
            }
            int nextItemToShow = 0;

            foreach (DataRow row in result)
            {
                categories.Append(comma);

                if (itemsAdded == nextItemToShow)
                {
                    categories.Append(row["Y"].ToString());
                    categories.Append("-");
                    categories.Append(row["M"].ToString());
                    nextItemToShow = itemsAdded + spaceInterval;
                }

                comma = ",";

                revenue.Add(Convert.ToDecimal(row["Sales"]));
                itemsAdded += 1;
            }

            lcSales.ChartTitle = Resource.SalesByMonthChartLabel;


            lcSales.CategoriesAxis = categories.ToString();
            LineChartSeries series = new LineChartSeries();

            series.Name = Resource.SalesByMonthChartSalesLabel;
            series.Data = revenue.ToArray();

            lcSales.Series.Add(series);

            //bcSales.CategoriesAxis
            //bcSales.Series.
        }
コード例 #27
0
        private void CreateCumulative(PlotArea plotArea, Statistics stat, uint index,
                                      uint categoryAxisId, uint valueAxisId)
        {
            LineChart lineChart = plotArea.AppendChild <LineChart>(new LineChart(
                                                                       new ShowMarker()
            {
                Val = true
            },
                                                                       new Smooth()
            {
                Val = false
            },
                                                                       new Grouping()
            {
                Val = GroupingValues.Standard
            },
                                                                       new DataLabels(new ShowLegendKey()
            {
                Val = false
            },
                                                                                      new ShowValue()
            {
                Val = false
            },
                                                                                      new ShowCategoryName()
            {
                Val = false
            },
                                                                                      new ShowSeriesName()
            {
                Val = false
            },
                                                                                      new ShowPercent()
            {
                Val = false
            },
                                                                                      new ShowBubbleSize()
            {
                Val = false
            })));

            LineChartSeries lineChartSeries = lineChart.AppendChild(
                new LineChartSeries(new Index()
            {
                Val = new UInt32Value(index),
            },
                                    new Order()
            {
                Val = new UInt32Value(index)
            },
                                    new SeriesText(new NumericValue()
            {
                Text = "Cumulative %"
            })));

            StringLiteral strLit = lineChartSeries.AppendChild(new CategoryAxisData()).AppendChild(new StringLiteral());

            strLit.Append(new PointCount()
            {
                Val = new UInt32Value((uint)stat.Frequencies.Count)
            });

            NumberLiteral numLit =
                lineChartSeries.AppendChild(new DocumentFormat.OpenXml.Drawing.Charts.Values())
                .AppendChild(new NumberLiteral());

            numLit.Append(new FormatCode("0.00%"));
            numLit.Append(new PointCount()
            {
                Val = new UInt32Value((uint)stat.Frequencies.Count)
            });

            for (uint i = 0; i < stat.Frequencies.Count; i++)
            {
                strLit.AppendChild <StringPoint>(new StringPoint()
                {
                    Index = new UInt32Value(i)
                })
                .Append(new NumericValue(stat.Frequencies[(int)i].Value.ToString()));
                numLit.AppendChild <NumericPoint>(new NumericPoint()
                {
                    Index = new UInt32Value(i)
                })
                .Append(new NumericValue((stat.Frequencies[(int)i].TotalCountPercent / 100).ToString()));
            }

            lineChart.Append(new AxisId()
            {
                Val = new UInt32Value(categoryAxisId)
            });
            lineChart.Append(new AxisId()
            {
                Val = new UInt32Value(valueAxisId)
            });

            AppendCategoryAxis(plotArea, categoryAxisId, "Time, ms", valueAxisId, false);
            AppendValueAxis(plotArea, valueAxisId, "", categoryAxisId, AxisPositionValues.Right, TickLabelPositionValues.High, false);
        }
コード例 #28
0
ファイル: BaseChart.cs プロジェクト: WFR79/EngieEducation
        protected IEnumerable <DataLabel> AddDataLabels(LineChartSeries series, int start, int end)
        {
            var returnList = new List <DataLabel>();

            if (start > -1)
            {
                if (end > -1 && start > end)
                {
                    var tmp = start;
                    start = end;
                    end   = start;
                }
                else if (start == end)
                {
                    start = end - 1;
                }

                var numberFormat = new NumberingFormat {
                    FormatCode = "#,##0", SourceLinked = false
                };
                var dataLabels = series.AppendChild(
                    new DataLabels(numberFormat, new DataLabelPosition {
                    Val = DataLabelPositionValues.Top
                },
                                   new ShowLegendKey {
                    Val = false
                }, new ShowValue {
                    Val = false
                },
                                   new ShowCategoryName {
                    Val = false
                }, new ShowSeriesName {
                    Val = false
                },
                                   new ShowPercent {
                    Val = false
                }, new ShowBubbleSize {
                    Val = false
                },
                                   new ShowLeaderLines {
                    Val = false
                }));

                while (start < end)
                {
                    var label = new DataLabel(new Index {
                        Val = (uint)start
                    }, new Layout(),
                                              new NumberingFormat
                    {
                        FormatCode   = "#,##0",
                        SourceLinked = false
                    }, new Separator(),
                                              new TextProperties(
                                                  new BodyProperties(), new ListStyle(),
                                                  new Paragraph(new ParagraphProperties(new DefaultRunProperties {
                        Bold = true
                    }), new EndParagraphRunProperties {
                        Language = "en-US"
                    })),
                                              new DataLabelPosition {
                        Val = DataLabelPositionValues.Top
                    },
                                              new ShowLegendKey {
                        Val = false
                    },
                                              new ShowValue {
                        Val = true
                    },
                                              new ShowCategoryName {
                        Val = false
                    },
                                              new ShowSeriesName {
                        Val = false
                    },
                                              new ShowPercent {
                        Val = false
                    },
                                              new ShowBubbleSize {
                        Val = false
                    },
                                              new ShowLeaderLines {
                        Val = false
                    });
                    dataLabels.InsertBefore(label, numberFormat);
                    returnList.Add(label);
                    start++;
                }
            }
            return(returnList);
        }