protected Series BuildScaleSeries(CaisisChart chart, string scaleName) { // set title string currentTitle = chart.Titles[0].Text; if (string.IsNullOrEmpty(currentTitle)) { chart.Titles[0].Text = scaleName; } chart.Titles[0].Font = DEFAULT_FONT; // create new series Series series = new Series(scaleName); series.ChartArea = "MainArea"; series.ChartType = SeriesChartType.Line; //series.Color = System.Drawing.ColorTranslator.FromHtml("#8d2a2c"); series.Color = GetNextColor(); series.BorderWidth = 3; series.MarkerStyle = MarkerStyle.Diamond; series.MarkerColor = COLOR_WHEEL[0];// System.Drawing.ColorTranslator.FromHtml("#8d2a2c"); series.MarkerSize = 11; series["ShowMarkerLines"] = "False"; series.LabelFormat = ""; series.IsValueShownAsLabel = false; series.SmartLabelStyle.Enabled = true; series.LabelAngle = 0; series.Font = new Font(FontFamily.GenericSansSerif, 7, FontStyle.Regular); series.LabelForeColor = Color.Black; chart.Series.Add(series); return(series); }
private Series BuildSeries(CaisisChart chart, string scaleName) { chart.Titles[0].Font = DEFAULT_FONT; // create new series Series series = new Series(scaleName); series.ChartArea = "MainArea"; series.ChartType = SeriesChartType.Line; series.Color = GetNextColor(); series.BorderWidth = 2; series.MarkerStyle = MarkerStyle.Circle; series.MarkerColor = System.Drawing.ColorTranslator.FromHtml("#000000"); //COLOR_WHEEL[0]; series.MarkerSize = 7; series["ShowMarkerLines"] = "False"; series.LabelFormat = ""; series.IsValueShownAsLabel = false; series.SmartLabelStyle.Enabled = true; series.LabelAngle = 0; series.Font = new Font(FontFamily.GenericSansSerif, 7, FontStyle.Regular); series.LabelForeColor = Color.Black; // series.XValueType = ChartValueType.DateTime; series.XValueType = ChartValueType.Int32; chart.Series.Add(series); return(series); }
protected void BuildScaleSeries(CaisisChart chart, string scaleName, DataView points) { var series = BuildScaleSeries(chart, scaleName); // data bind BindScaleSeries(chart, series, points); }
protected void BuildScaleChart(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { string scaleName = DataBinder.Eval(e.Item.DataItem, "ScaleName").ToString(); DataView pointsView = DataBinder.Eval(e.Item.DataItem, "ScaleDataView") as DataView; IEnumerable <BreastQPoint> points = DataBinder.Eval(e.Item.DataItem, "ScaleData") as IEnumerable <BreastQPoint>; CaisisChart chart = e.Item.FindControl("BreastQChart") as CaisisChart; BaseBreastQScaleChart scaleChart = e.Item.FindControl("ScaleChart") as BaseBreastQScaleChart; BuildScaleSeries(chart, scaleName, pointsView); Literal NewTableRow = (Literal)e.Item.FindControl("NewTableRow"); if (e.Item.ItemIndex > 0 && (e.Item.ItemIndex % 2) == 1) { NewTableRow.Visible = true; } // DEBUG: Repeater debugRptr = e.Item.FindControl("BreastQChart_Data") as Repeater; bool debug = Request.QueryString["debug"] == "true"; if (debugRptr != null && debug) { debugRptr.DataSource = points; debugRptr.DataBind(); } } }
private Series BuildSeries(CaisisChart chart, Color seriesColor, SeriesChartType seriesChartType, MarkerStyle seriesMarkerStyle, string seriesTitle) { // set title string currentTitle = chart.Titles[0].Text; if (string.IsNullOrEmpty(currentTitle)) { chart.Titles[0].Text = seriesTitle; } chart.Titles[0].Font = DEFAULT_FONT; // create new series Series series = new Series();//seriesTitle); series.ChartArea = "MainArea"; series.ChartType = seriesChartType;// SeriesChartType.Line; //series.Color = System.Drawing.ColorTranslator.FromHtml("#8d2a2c"); series.Color = seriesColor; series.BorderWidth = 3; series.MarkerStyle = seriesMarkerStyle; //MarkerStyle.Diamond; series.MarkerColor = seriesColor; // Color.FromArgb(79, 129, 189); series.MarkerSize = 11; series["ShowMarkerLines"] = "False"; series.LabelFormat = ""; series.IsValueShownAsLabel = false; series.SmartLabelStyle.Enabled = true; series.LabelAngle = 0; series.Font = new Font(FontFamily.GenericSansSerif, 7, FontStyle.Regular); series.LabelForeColor = Color.Black; chart.Series.Add(series); return(series); }
private CaisisChart GetChartPrototype() { CaisisChart c = new CaisisChart(); c.Width = 550; c.Height = 200; c.BorderlineDashStyle = ChartDashStyle.Solid; c.BackColor = Color.FromArgb(0xFF, 0xFF, 0xFF); // legend Legend legend1 = new Legend("Legend1"); legend1.Enabled = false; c.Legends.Add(legend1); // series SmartLabelStyle labelStyle = new SmartLabelStyle(); labelStyle.Enabled = true; labelStyle.CalloutLineAnchorCapStyle = LineAnchorCapStyle.None; labelStyle.CalloutStyle = LabelCalloutStyle.None; Series series = new Series("Series1"); series.ChartType = SeriesChartType.Line; series.Color = Color.FromArgb(0xC4, 0x3E, 0x06); series.Legend = "Legend1"; series.XValueMember = "Months"; series.YValueMembers = "Score"; series.IsValueShownAsLabel = true; series.LabelForeColor = Color.FromArgb(0xC4, 0x3E, 0x06); series.SmartLabelStyle = labelStyle; series.MarkerStyle = MarkerStyle.Circle; series.MarkerSize = 4; c.Series.Add(series); // chart area ChartArea chartArea = new ChartArea(); chartArea.BackSecondaryColor = Color.White; chartArea.BackColor = Color.AliceBlue; chartArea.ShadowColor = Color.Transparent; chartArea.BackGradientStyle = GradientStyle.TopBottom; c.ChartAreas.Add(chartArea); return(c); }
private void BindSeries(CaisisChart chart, Series series, DataView points, string currentSurvey) { series.Points.DataBind(points, "MonthsSinceSurgery", "SurveyScore", ""); // chart.ChartAreas[0].AxisY.Minimum = YAxisMin[currentSurvey]; // chart.ChartAreas[0].AxisY.Maximum = YAxisMax[currentSurvey]; chart.ChartAreas[0].AxisY.Interval = (chart.ChartAreas[0].AxisY.Maximum <= 10) ? 1 : ((chart.ChartAreas[0].AxisY.Maximum <= 30) ? 5 : 10); // chart.ChartAreas[0].AxisX.MajorTickMark.Interval = ((int)points[points.Count - 1]["MonthsSinceSurgery"] >= 6) ? 6 : 1; chart.ChartAreas[0].AxisX.LabelStyle.Interval = ((int)points[points.Count - 1]["MonthsSinceSurgery"] >= 6) ? 6 : 1; chart.ChartAreas[0].AxisX.LabelStyle.Angle = 0; chart.ChartAreas[0].AxisX.Minimum = 0; chart.ChartAreas[0].AxisX.Title = "Months Since Surgery"; }
protected void BindScaleSeries(CaisisChart chart, Series series, DataView points) { // TODO: cleanup DataTable dt = points.Table; // create points label dt.Columns.Add(new DataColumn("PointsLabel", typeof(string), "SurveyDateText")); dt.Columns.Add(new DataColumn("Tooltip", typeof(string), "SurveyDateText + ' (' + ScaleScore + ')'")); dt.Columns.Add(new DataColumn("SurveyDateTicks", typeof(double))); // TODO: x-axis label dt.Columns.Add(new DataColumn("XAxisLabel", typeof(string))); double[] ticks = new double[dt.Rows.Count]; // collect date as points for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; var tick = (double)((DateTime)row["SurveyDate"]).Ticks; ticks[i] = tick; // set x-axis label string xAxisLabel = row[scleChartXAxisLabel].ToString(); row["XAxisLabel"] = GetXAxisLabel(xAxisLabel, row["SurveyType"].ToString(), (DateTime)row["SurveyDate"]); } // smooth points //int[] normalizedPoints = SmoothPoints(ticks, 1, Math.Min(10, ticks.Count() * 2)); // TODO: revisit point spacing, smooth based on percentage int[] normalizedPoints = SmoothPoints(ticks, 0, 100, true, true); // update column for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; int normalizedPoint = (int)normalizedPoints[i]; row["SurveyDateTicks"] = normalizedPoint; } // smooth axis range double min = normalizedPoints.Min(); double max = normalizedPoints.Max(); var area = chart.ChartAreas["MainArea"]; //area.AxisX.Minimum = min; //area.AxisX.Maximum = max; series.Points.DataBind(points, "SurveyDateTicks", "ScaleScore", "AxisLabel=XAxisLabel,Tooltip=Tooltip"); }
public CaisisChart GetErectileFunctionChart() { Init(); if (!CanBuildErectileFunctionChart) { return(null); } CaisisChart c = GetChartPrototype(); c.ID = "EFChart"; AddEFAxes(c.ChartAreas[0]); c.DataSource = efChartTable; c.DataBind(); return(c); }
public CaisisChart GetUrinaryFunctionChart() { Init(); if (!CanBuildUrinaryFunctionChart) { return(null); } CaisisChart c = GetChartPrototype(); c.ID = "UFChart"; AddUFAxes(c.ChartAreas[0]); c.DataSource = ufChartTable; c.DataBind(); return(c); }