public String buildOneDimensionalChart <T>(chartTypeEnum chartType, String title, List <T> source, Func <T, String> label, Func <T, String> value, Func <T, String> color = null) { var fields = GetDefaultValues(); fields.Add("title", title); //List<String> color_set = new List<string>() { "69D2E7", "#E0E4CC", "#F38630", "#96CE7F", "#CEBC17", "#CE4264" }; circularSelector <String> color_selector = new circularSelector <String>("69D2E7", "#E0E4CC", "#F38630", "#96CE7F", "#CEBC17", "#CE4264"); foreach (T item in source) { String label_str = label(item); String value_str = value(item); String color_str = ""; if (color == null) { color_str = color_selector.next(); } else { color_str = color(item); } fields["colors"] = fields["colors"].add(color_str, ","); fields["data"] = fields["data"].add(value_str, ","); fields["labels"] = fields["labels"].add(label_str, ","); } stringTemplate template = new stringTemplate(chartTemplate[chartType]); return(template.applyToContent(fields)); }
public String buildTwoDimensionalChart(chartTypeEnum chartType, DataTable dataTable, String[] columns) { DataTable finalDataTable = dataTable.GetSubColumnTable(-1, columns); chartFeatures features = chartFeatures.transposeTable | chartFeatures.withoutHtml; String chartCode = BuildChart(chartType, features, finalDataTable, ChartSize); return(chartCode); }
public String buildTwoDimensionalChart(chartTypeEnum chartType, DataTable dataTable, params String[] columns) { JSONChartDataTool tool = new JSONChartDataTool(); String data = tool.DataToJ3CodeData(dataTable, columns); var fields = GetDefaultValues(); fields.Add("title", dataTable.GetTitle().getFilename()); fields["data"] = data; stringTemplate template = new stringTemplate(chartTemplate[chartType]); return(template.applyToContent(fields)); }
/// <summary> /// Builds the chart. /// </summary> /// <param name="chartType">Type of the chart.</param> /// <param name="features">The features.</param> /// <param name="data">The data.</param> /// <param name="size">The size.</param> /// <param name="typesForSeries">The types for series.</param> /// <returns></returns> public String BuildChart(chartTypeEnum chartType, chartFeatures features, DataTable data, chartSizeEnum size, chartTypeEnum typesForSeries = chartTypeEnum.none) { List <chartFeatures> featureList = features.getEnumListFromFlags <chartFeatures>(); if (!featureList.Contains(chartFeatures.withoutHtml)) { features |= chartFeatures.withoutHtml; } String js = chartTools.buildChart(chartType, features, data, size, typesForSeries, "{0}"); return(shortcodeTool.Create(js, "", null)); }
public String buildTwoDimensionalChart <T>(chartTypeEnum chartType, String title, List <T> source, Func <T, String> label, Func <T, String> color = null, params Func <T, String>[] value) { var fields = GetDefaultValues(); fields.Add("title", title); //List<String> color_set = new List<string>() { "69D2E7", "#E0E4CC", "#F38630", "#96CE7F", "#CEBC17", "#CE4264" }; List <String> value_str = new List <string>(); foreach (var f in value) { value_str.Add("");//.Add(f(item)); } foreach (T item in source) { String label_str = label(item); for (int i = 0; i < value.Length; i++) { value_str[i] = value_str[i].add(value[i](item), ","); } //String value_str = value(item); String color_str = ""; if (color == null) { color_str = color_selector.next(); } else { color_str = color(item); } fields["colors"] = fields["colors"].add(color_str, ","); fields["labels"] = fields["labels"].add(label_str, ","); } foreach (var f in value_str) { fields["data"] = fields["data"].add(f, " next "); } stringTemplate template = new stringTemplate(chartTemplate[chartType]); return(template.applyToContent(fields)); }
public String buildOneDimensionalChart(chartTypeEnum chartType, String title, Dictionary <String, Double> source, String labelColumnName = "Label", String valueColumnName = "Value", String valueColumnFormat = "") { DataTable finalDataTable = new DataTable(); // dataTable.GetSubColumnTable(-1, columns); finalDataTable.SetTitle(title); DataColumn labelColumn = finalDataTable.Columns.Add(labelColumnName.getCleanPropertyName(), typeof(String)).SetHeading(labelColumnName); DataColumn valueColumn = finalDataTable.Columns.Add(valueColumnName.getCleanPropertyName(), typeof(Double)).SetFormat(valueColumnFormat); foreach (var pair in source) { var dr = finalDataTable.NewRow(); dr[labelColumn] = pair.Key; dr[valueColumn] = pair.Value; } chartFeatures features = chartFeatures.transposeTable | chartFeatures.withoutHtml; String chartCode = BuildChart(chartType, features, finalDataTable, ChartSize); return(chartCode); }
public String buildOneDimensionalChart <T>(chartTypeEnum chartType, String title, Dictionary <String, Double> source) { var fields = GetDefaultValues(); fields.Add("title", title); //List<String> color_set = new List<string>() { "69D2E7", "#E0E4CC", "#F38630", "#96CE7F", "#CEBC17", "#CE4264" }; circularSelector <String> color_selector = new circularSelector <String>("69D2E7", "#E0E4CC", "#F38630", "#96CE7F", "#CEBC17", "#CE4264"); foreach (var item in source) { String data = "columns: -:: "; String column = "-:: !" + item.Key + "!".add(item.Value.ToString(), ", ") + " ::-"; fields["data"] = fields["data"].add(column, ", "); fields["data"] += " ::-"; } stringTemplate template = new stringTemplate(chartTemplate[chartType]); return(template.applyToContent(fields)); }
/// <summary> /// Builds the chart string for <c>C3js</c> rendering /// </summary> /// <param name="chartType">Type of chart to create.</param> /// <param name="features">Used features</param> /// <param name="data">Data table</param> /// <param name="size">The size.</param> /// <param name="typesForSeries">The types for series.</param> /// <param name="obj_id">The object identifier.</param> /// <returns></returns> public static string buildChart(chartTypeEnum chartType, chartFeatures features, DataTable data, chartSizeEnum size, chartTypeEnum typesForSeries = chartTypeEnum.none, String obj_id = "") { //if (features != chartFeatures.none) //{ // features |= chartFeatures.bindto; //} PropertyCollection pc = new PropertyCollection(); if (obj_id.isNullOrEmpty()) { obj_id = data.TableName.getCleanPropertyName(); } pc.Add(chartDataColumnEnum.chart_bindto, obj_id); pc.Add(chartDataColumnEnum.chart_type, chartType.ToString()); switch (size) { case chartSizeEnum.big500x1000: pc.Add(chartDataColumnEnum.chart_height, 500); pc.Add(chartDataColumnEnum.chart_width, 1000); break; case chartSizeEnum.half300x500: pc.Add(chartDataColumnEnum.chart_height, 300); pc.Add(chartDataColumnEnum.chart_width, 500); break; case chartSizeEnum.mid300x1000: pc.Add(chartDataColumnEnum.chart_height, 300); pc.Add(chartDataColumnEnum.chart_width, 1000); break; case chartSizeEnum.mini200x380: pc.Add(chartDataColumnEnum.chart_height, 200); pc.Add(chartDataColumnEnum.chart_width, 380); break; default: pc.Add(chartDataColumnEnum.chart_height, 300); pc.Add(chartDataColumnEnum.chart_width, 1000); break; } string output_t = masterTemplate; if (!features.HasFlag(chartFeatures.withoutHtml)) { output_t = wrapTemplate.Replace("{{{" + nameof(chartDataColumnEnum.chart_wrap) + "}}}", output_t); } if (features.HasFlag(chartFeatures.skipFirstRow)) { data.Rows.RemoveAt(0); } string dataInsert = ""; if (features.HasFlag(chartFeatures.transposeTable)) { dataInsert = data.buildDataInsertHorizontaly(); } else { dataInsert = data.buildDataInsertVertically(); } string innerInsert = ""; List <chartTypeEnum> ts = typesForSeries.getEnumListFromFlags <chartTypeEnum>(); int d = 2; foreach (chartTypeEnum t in ts) { if (t != chartTypeEnum.none) { innerInsert += "data" + d.ToString() + ": '" + t.ToString() + "', " + Environment.NewLine; } d++; } string typesLine = @"types: { {{{chart_types}}} } ".Replace("{{{" + chartDataColumnEnum.chart_types + "}}}", innerInsert); if (typesForSeries != chartTypeEnum.none) { innerInsert = typesLine; } List <chartFeatures> ls = features.getEnumListFromFlags <chartFeatures>(); foreach (chartFeatures ch in ls) { if (featureTemplates.ContainsKey(ch)) { innerInsert = innerInsert.add(featureTemplates[ch], "," + Environment.NewLine); } } pc.Add(chartDataColumnEnum.chart_inner, innerInsert); pc.Add(chartDataColumnEnum.chart_data, dataInsert); string filename = obj_id.add("csv", "."); pc.add(chartDataColumnEnum.chart_url, filename); string output = output_t.applyToContent(false, pc); return(output); }
public Charts() { InitializeComponent(); _chartType = chartTypeEnum.monthByCategory; }
private void chartType3_CheckedChanged(object sender, EventArgs e) { _chartType = chartTypeEnum.pieChart; drawChart(); }
private void chartType2_CheckedChanged(object sender, EventArgs e) { _chartType = chartTypeEnum.yearByCategory; drawChart(); }
private void radioButton1_CheckedChanged(object sender, EventArgs e) { _chartType = chartTypeEnum.monthByCategory; drawChart(); }