Example #1
0
            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);
            }
Example #2
0
    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();

    }
Example #3
0
    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();
    }