/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
public StackedBarChart(StackedBarChartData data, StackedBarChartStyle style) { this.Data = data; this.Style = style; }
/// <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); }