public static Infragistics.Win.UltraWinChart.UltraChart DataPointLabel(Infragistics.Win.UltraWinChart.UltraChart UChart, Boolean Visible, string UChartType, string DataFormat) { ChartTextAppearance chartTextAppearance1 = new ChartTextAppearance(); ColumnChartAppearance columnChartAppearance1 = new ColumnChartAppearance(); LineChartAppearance lineChartAppearance1 = new LineChartAppearance(); DoughnutChartAppearance doughnuChartAppearance1 = new DoughnutChartAppearance(); PieChartAppearance pieChartAppearance1 = new PieChartAppearance(); BarChartAppearance barChartAppearance1 = new BarChartAppearance(); if (Visible == true) { chartTextAppearance1.Visible = true; chartTextAppearance1.ChartTextFont = new System.Drawing.Font("Arial", 7F); chartTextAppearance1.Column = -2; chartTextAppearance1.ItemFormatString = DataFormat; chartTextAppearance1.Row = -2; } else { chartTextAppearance1.Visible = false; } switch ((ChartType)Enum.Parse(typeof(ChartType), UChartType)) { case ChartType.ColumnChart: columnChartAppearance1.ChartText.Add(chartTextAppearance1); UChart.ColumnChart = columnChartAppearance1; break; case ChartType.LineChart: lineChartAppearance1.ChartText.Add(chartTextAppearance1); UChart.LineChart = lineChartAppearance1; break; case ChartType.DoughnutChart: doughnuChartAppearance1.ChartText.Add(chartTextAppearance1); UChart.DoughnutChart = doughnuChartAppearance1; break; case ChartType.PieChart: pieChartAppearance1.ChartText.Add(chartTextAppearance1); UChart.PieChart = pieChartAppearance1; break; case ChartType.BarChart: barChartAppearance1.ChartText.Add(chartTextAppearance1); UChart.BarChart = barChartAppearance1; break; } return(UChart); }
public void AddSeries(DatedDataCollectionGen<double> series_, string heading_, Color color_, int extent_, string yLabelFormat_) { DataTable table = series_.ToDataTable(); NumericTimeSeries nts = new NumericTimeSeries(); nts.Key = string.Format("Series{0}", heading_); nts.Label = heading_; nts.PEs.Add(new PaintElement(color_)); ultraChart.CompositeChart.Series.Add(nts); nts.Data.TimeValueColumn = "Date"; nts.Data.ValueColumn = "Value"; LineChartAppearance lca = new LineChartAppearance(); ChartLayerAppearance cla = new ChartLayerAppearance(); int j = ultraChart.CompositeChart.ChartLayers.Count; cla.AxisXKey = "axis1"; cla.AxisY = findYAxis(extent_, yLabelFormat_); //cla.AxisYKey = "axis2"; cla.ChartAreaKey = "area1"; cla.ChartType = ChartType.LineChart; lca.EndStyle = m_capStyle; lca.StartStyle = m_capStyle; lca.NullHandling = NullHandling.DontPlot; lca.Thickness = LineThickness; cla.ChartTypeAppearance = lca; cla.Key = string.Format("chartLayer{0}", j.ToString()); cla.SeriesList = nts.Key; ultraChart.CompositeChart.ChartLayers.Add(cla); nts.Data.DataSource = table; nts.DataBind(); System.Windows.Forms.CheckBox cb = new System.Windows.Forms.CheckBox(); cb.Text = heading_; cb.AutoSize = true; cb.Margin = new Padding(1, 1, 1, 1); cb.Tag = j; flp.Controls.Add(cb); cb.Checked = true; cb.CheckedChanged += handleCheckedChanged; cb.ForeColor = color_; cb.BackColor = Color.FromArgb(15, 15, 15); ultraChart.CompositeChart.Legends[0].ChartLayers.Add(cla); ultraChart.InvalidateLayers(); }
public void Create(DatedDataCollectionGen<double> values_, DatedDataCollectionGen<double> zoneLookup_, IList<ZoneDefinition> zones_) { while (ultraChart.CompositeChart.ChartAreas.Count > 1) ultraChart.CompositeChart.ChartAreas.RemoveAt(1); ultraChart.Dock = DockStyle.None; ultraChart.Anchor=AnchorStyles.Bottom|AnchorStyles.Top|AnchorStyles.Right|AnchorStyles.Left; ultraChart.Location=new Point(0,0); ultraChart.Size=new Size(Size.Width,Size.Height-40); if (flp == null) { flp = new FlowLayoutPanel(); flp.Size = new Size(Width, 40); flp.Dock = DockStyle.Bottom; Controls.Add(flp); } flp.Controls.Clear(); ultraChart.CompositeChart.ChartLayers.Clear(); ultraChart.CompositeChart.Series.Clear(); ultraChart.CompositeChart.Legends[0].ChartLayers.Clear(); dt.Rows.Clear(); dt.Columns.Clear(); // add columns into datatable dt.Columns.Add("Date", typeof(DateTime)); for (int i = 0; i < zones_.Count; ++i) { dt.Columns.Add(zones_[i].Name, typeof(double)); zones_[i].Index = i; } // add first row DataRow row = dt.NewRow(); row[0] = zoneLookup_.Dates[0]; dt.Rows.Add(row); double prevPrice = values_.ValueOnDate(zoneLookup_.Dates[0]); double low = double.MaxValue; double high = double.MinValue; for (int d = 1; d < zoneLookup_.Length; ++d) { DateTime date = zoneLookup_.Dates[d]; DataRow newRow = dt.NewRow(); newRow[0] = date; double px = values_.ValueOnDate(date); double score = zoneLookup_.ValueOnDate(date); low = Math.Min(low, px); high = Math.Max(high, px); for (int i = 0; i < zones_.Count; ++i) { if (zones_[i].Matches(score)) { newRow[i + 1] = px; dt.Rows[dt.Rows.Count - 1][i + 1] = prevPrice; break; } } prevPrice = px; dt.Rows.Add(newRow); } // create the layers for each heading for(int j=0;j<zones_.Count;++j) { string heading = zones_[j].Name; NumericTimeSeries nts = new NumericTimeSeries(); nts.Key = string.Format("Series{0}",heading); nts.Label = heading; nts.PEs.Add(new PaintElement(zones_[j].LineColour)); ultraChart.CompositeChart.Series.Add(nts); nts.Data.TimeValueColumn = "Date"; nts.Data.ValueColumn = heading; LineChartAppearance lca = new LineChartAppearance(); ChartLayerAppearance cla = new ChartLayerAppearance(); cla.AxisXKey = "axis1"; cla.AxisYKey = "axis2"; cla.ChartAreaKey = "area1"; cla.ChartType = ChartType.LineChart; lca.EndStyle = m_capStyle; lca.StartStyle = m_capStyle; lca.NullHandling=NullHandling.DontPlot; lca.Thickness = LineThickness; cla.ChartTypeAppearance = lca; cla.Key = string.Format("chartLayer{0}",j.ToString()); cla.SeriesList = nts.Key; ultraChart.CompositeChart.ChartLayers.Add(cla); AxisItem ai = ultraChart.CompositeChart.ChartAreas[0].Axes.FromKey("axis2"); { ai.RangeType = AxisRangeType.Custom; ai.RangeMin = low; ai.RangeMax = high; } nts.Data.DataSource = dt; nts.DataBind(); System.Windows.Forms.CheckBox cb = new System.Windows.Forms.CheckBox(); cb.Text = heading; cb.AutoSize = true; cb.Margin = new Padding(1, 1, 1, 1); cb.Tag = j; flp.Controls.Add(cb); cb.Checked = true; cb.CheckedChanged += handleCheckedChanged; cb.ForeColor = zones_[j].LineColour; cb.BackColor = Color.FromArgb(15,15,15); //ultraChart.CompositeChart.ChartLayers.Add(cla); ultraChart.CompositeChart.Legends[0].ChartLayers.Add(cla); } ultraChart.InvalidateLayers(); }
public void Create(ConstructGen<double> wts_, FXGroup[] groups_) { ConstructGen<double> groupConv = new ConstructGen<double>(groups_.Length); groupConv.ColumnHeadings = groups_.Select(x => x.ToString()).ToArray(); Currency[] ccys = wts_.ColumnHeadings.Select(x => Singleton<FXIDs>.Instance[x]).ToArray(); List<int[]> indicies =new List<int[]>(); foreach(FXGroup group in groups_) { List<int> groupIndicies=new List<int>(); for(int i=0;i<ccys.Length;++i) if(ccys[i].IsGroup(group)) groupIndicies.Add(i); indicies.Add(groupIndicies.ToArray()); } foreach (DateTime date in wts_.Dates) { double[] dateWeights = wts_.GetValues(date); double[] buckets = new double[groups_.Length]; for(int g=0;g<groups_.Length;++g) foreach (int index in indicies[g]) buckets[g] += dateWeights[index]; groupConv.SetValues(date, buckets); } DataTable dt1 = groupConv.ToDataTable(groupConv.ColumnHeadings, "Date", "dd-MMM-yyyy"); Chart.ChartType = Infragistics.UltraChart.Shared.Styles.ChartType.Composite; ChartArea area = new ChartArea(); Chart.CompositeChart.ChartAreas.Add(area); AxisItem axisY = new AxisItem(); axisY.Extent = 50; axisY.DataType = AxisDataType.Numeric; axisY.OrientationType = AxisNumber.Y_Axis; axisY.LineColor = Color.Blue; axisY.Labels.Visible = true; area.Axes.Add(axisY); AxisItem axisX = new AxisItem(); axisX.DataType = AxisDataType.String; axisX.Extent = 80; axisX.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; axisX.OrientationType = AxisNumber.X_Axis; axisX.LineColor = Color.Blue; axisX.Labels.Orientation = TextOrientation.VerticalLeftFacing; axisX.Labels.SeriesLabels.Orientation = TextOrientation.VerticalLeftFacing; area.Axes.Add(axisX); AxisItem axisX2 = new AxisItem(); axisX2.DataType = AxisDataType.String; axisX2.Extent = 80; axisX2.OrientationType = AxisNumber.X_Axis; axisX2.LineColor = Color.Blue; axisX2.Labels.Orientation = TextOrientation.VerticalLeftFacing; axisX2.Labels.SeriesLabels.Orientation = TextOrientation.VerticalLeftFacing; axisX2.SetLabelAxisType = SetLabelAxisType.ContinuousData; area.Axes.Add(axisX2); ChartLayerAppearance myColumnLayer = new ChartLayerAppearance(); myColumnLayer.ChartType = ChartType.StackColumnChart; myColumnLayer.ChartArea = area; foreach (FXGroup group in groups_) { NumericSeries series1 = new NumericSeries(); series1.Key = group.ToString(); series1.DataBind(dt1, group.ToString(), "Date"); series1.PEs.Add(new PaintElement(ColorAttribute.GetAttribute(group).Color)); myColumnLayer.Series.Add(series1); Chart.CompositeChart.Series.Add(series1); } DataTable dt2 = wts_.SumRows().ToDataTable(format_:"dd-MMM-yyyy"); ChartLayerAppearance myColumnLayer2 = new ChartLayerAppearance(); myColumnLayer2.ChartType = ChartType.LineChart; myColumnLayer2.ChartArea = area; NumericSeries seriesA = new NumericSeries(); seriesA.Key = "Sum of Wts"; seriesA.DataBind(dt2, "Value", "Date"); seriesA.PEs.Add(new PaintElement(Color.Orange)); myColumnLayer2.Series.Add(seriesA); Chart.CompositeChart.Series.Add(seriesA); LineChartAppearance la = new LineChartAppearance(); la.Thickness = 4; myColumnLayer2.ChartTypeAppearance = la; myColumnLayer.AxisX = axisX; myColumnLayer.AxisY = axisY; myColumnLayer2.AxisX = axisX2; myColumnLayer2.AxisY = axisY; myColumnLayer.SwapRowsAndColumns = true; this.Chart.CompositeChart.ChartLayers.Add(myColumnLayer); this.Chart.CompositeChart.ChartLayers.Add(myColumnLayer2); EstablishDefaultTooltip(); m_wts = wts_; m_groups = groups_; pbSplitIntoYears.BringToFront(); }