Beispiel #1
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            List <string>            headers = new List <string>();
            GH_Structure <GH_String> values;

            D3jsLib.Domain domain = null;

            if (!DA.GetDataList <string>(0, headers))
            {
                return;
            }
            if (!DA.GetDataTree(1, out values))
            {
                return;
            }
            DA.GetData <D3jsLib.Domain>(2, ref domain);

            List <DataPoint2> dataPoints = Mandrill_Grasshopper.Utilities.Utilities.Data2FromTree(headers, values);

            StackedBarChartData data = new StackedBarChartData();

            data.Data   = dataPoints;
            data.Domain = domain;

            DA.SetData(0, data);
        }
Beispiel #2
0
        public List <StackedBarChartData> GetAnnualChart(string year)
        {
            string query = "SELECT DATE_TRUNC('month',\"LogDate\")" +
                           "AS \"Date\", " +
                           "COUNT(\"Id\") AS Count " +
                           "FROM public.\"Logs\" " +
                           $"WHERE date_part('year',\"LogDate\") = {year} " +
                           "GROUP BY DATE_TRUNC('month',\"LogDate\") " +
                           "ORDER BY \"Date\" DESC;";


            var list = _db.GetValues <DateCountModel>(query);
            List <StackedBarChartData> chart = new List <StackedBarChartData>();

            if (list.Count > 0)
            {
                foreach (var item in list)
                {
                    StackedBarChartData data = new StackedBarChartData
                    {
                        Month = MonthCollection.Months[item.Date.Month],
                        Count = item.Count
                    };
                    chart.Add(data);
                }
            }

            return(chart);
        }
Beispiel #3
0
        /// <summary>
        ///     Staked Bar Chart Data object.
        /// </summary>
        /// <param name="Headers">Names of all values that will be grouped. First value is always "Name".</param>
        /// <param name="Values">Nested List of values where first item in a sub-list is Group Name. Following items
        /// must match number of value names defined in Headers input. </param>
        /// <param name="Domain">Y Domain for the Chart.</param>
        /// <returns name="Data">Stacked Bar Chart Data</returns>
        /// <search>data, stacked, bar, chart</search>
        public static StackedBarChartData Data(
            List <string> Headers,
            List <List <object> > Values,
            [DefaultArgumentAttribute("Charts.MiscNodes.GetNull()")] Domain Domain)
        {
            List <DataPoint2> dataPoints = new List <DataPoint2>();

            foreach (List <object> subList in Values)
            {
                DataPoint2 dataPoint = new DataPoint2();
                dataPoint.Name = subList[0].ToString();
                Dictionary <string, double> values = new Dictionary <string, double>();
                for (int i = 1; i < subList.Count(); i++)
                {
                    values.Add(Headers[i], Convert.ToDouble(subList[i]));
                }
                dataPoint.Values = values;
                dataPoints.Add(dataPoint);
            }
            StackedBarChartData data = new StackedBarChartData();

            data.Data   = dataPoints;
            data.Domain = Domain;

            return(data);
        }
Beispiel #4
0
        /// <summary>
        ///     Staked Bar Chart Data object.
        /// </summary>
        /// <param name="Headers">Names of all values that will be grouped. First value is always "Name".</param>
        /// <param name="Values">Nested List of values where first item in a sub-list is Group Name. Following items
        /// must match number of value names defined in Headers input. </param>
        /// <param name="Domain">Y Domain for the Chart.</param>
        /// <returns name="Data">Stacked Bar Chart Data</returns>
        /// <search>data, stacked, bar, chart</search>
        public static StackedBarChartData Data(
            List <string> Headers,
            List <List <object> > Values,
            [DefaultArgumentAttribute("Charts.MiscNodes.GetNull()")] Domain Domain)
        {
            StackedBarChartData data = new StackedBarChartData();

            data.Data   = ChartsUtilities.DataToJsonString(ChartsUtilities.Data2FromList(Headers, Values));
            data.Domain = Domain;

            return(data);
        }
Beispiel #5
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            string filePath = null;
            Domain domain   = null;

            if (!DA.GetData <string>(0, ref filePath))
            {
                return;
            }
            DA.GetData <Domain>(1, ref domain);

            StackedBarChartData data = new StackedBarChartData();

            data.Data   = ChartsUtilities.DataToJsonString(ChartsUtilities.Data2FromCSV(filePath));
            data.Domain = domain;

            DA.SetData(0, data);
        }
Beispiel #6
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            StackedBarChartData  data  = null;
            StackedBarChartStyle style = null;

            if (!DA.GetData <StackedBarChartData>(0, ref data))
            {
                return;
            }
            if (!DA.GetData <StackedBarChartStyle>(1, ref style))
            {
                return;
            }

            D3jsLib.StackedBarChart.StackedBarChart chart = new D3jsLib.StackedBarChart.StackedBarChart(data, style);

            DA.SetData(0, chart);
        }
Beispiel #7
0
        /// <summary>
        ///     Stacked Bar Chart Data object.
        /// </summary>
        /// <param name="FilePath">Path to a CSV file.</param>
        /// <param name="Domain">Y Domain of a chart.</param>
        /// <returns name="Data">Data Class for use with Grouped Bar Chart.</returns>
        /// <search>data, stacked bar chart, chart, bar, grouped</search>
        public static StackedBarChartData DataFromCSV(
            object FilePath,
            [DefaultArgumentAttribute("Charts.MiscNodes.GetNull()")] Domain Domain)
        {
            // get full path to file as string
            // if File.FromPath is used it returns FileInfo class
            string _filePath = "";

            try
            {
                _filePath = (string)FilePath;
            }
            catch
            {
                _filePath = ((FileInfo)FilePath).FullName;
            }

            StackedBarChartData data = new StackedBarChartData();

            data.Data   = ChartsUtilities.DataToJsonString(ChartsUtilities.Data2FromCsv(_filePath));
            data.Domain = Domain;

            return(data);
        }
Beispiel #8
0
 public StackedBarChart(StackedBarChartData data, StackedBarChartStyle style)
 {
     this.Data  = data;
     this.Style = style;
 }
Beispiel #9
0
 /// <summary>
 ///     New Grouped Bar Chart object.
 /// </summary>
 /// <param name="Data">Bar Chart Data.</param>
 /// <param name="Style">Bar Chart Style.</param>
 /// <returns name="Chart">Generated Bar Chart.</returns>
 /// <search>bar, chart, grouped</search>
 public static D3jsLib.StackedBarChart.StackedBarChart Chart(StackedBarChartData Data, StackedBarChartStyle Style)
 {
     D3jsLib.StackedBarChart.StackedBarChart chart = new D3jsLib.StackedBarChart.StackedBarChart(Data, Style);
     return(chart);
 }