【问题标题】:Alignment of Multiple TeeChart's Chart Control along Bottom Axis多个 TeeChart 的图表控件沿底轴对齐
【发布时间】:2017-02-22 07:25:26
【问题描述】:

目前我们在使用 TeeChart 的图表控件 (.net / c#) 时遇到了同步问题。在所附屏幕截图中显示的示例中,我们有两个图表控件,它们的右垂直轴完美同步。顶部图表包含面积图,而底部图表包含体积图。在两个图表上以特定时间间隔绘制垂直线时,我们发现在两个图表中绘制的具有相同值的垂直线不同步。请注意,两个图表均使用相同的数据集绘制。

我们对同一问题进行了一些研发,我们的观察表明这是由于 TeeChart 中使用了不同的图表样式。但是根据我们客户的要求,我们需要在多个图表中同步这条垂直线。对此的任何帮助将不胜感激。

【问题讨论】:

    标签: c# .net teechart


    【解决方案1】:

    下面的代码对齐两个系列的垂直线。我认为你可以这样做:

      public Form1()
        {
            InitializeComponent();
            InitializeChart();
        }
    
        Steema.TeeChart.Axis axis1;
        DateTime dt; 
        private void InitializeChart()
        {
            tChart1 = new Steema.TeeChart.TChart();
            tChart1.Dock = DockStyle.Fill;
            this.Controls.Add(tChart1);
            tChart1.Aspect.View3D = false;
            axis1 = new Steema.TeeChart.Axis();
            tChart1.Axes.Custom.Add(axis1);
            axis1.Horizontal = false;
    
            tChart1.Axes.Right.StartPosition = 0;
            tChart1.Axes.Right.EndPosition = 50;
    
            axis1.StartPosition = 51;
            axis1.EndPosition = 100;
    
            axis1.OtherSide = true;
            axis1.AxisPen.Visible = false;
            dt = DateTime.Now;
            tChart1.Axes.Bottom.Labels.DateTimeFormat = "dd/MM";
            tChart1.Axes.Bottom.Labels.Style = Steema.TeeChart.AxisLabelStyle.Value;
            InitializeSeries();
            tChart1.Draw();
    
            tChart1.AfterDraw += TChart1_AfterDraw;
        }
    
        private void TChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
        {
           for (int i=0; i<tChart1[0].Count; i++)
            {
                Point point1, point2;
                point1= new Point(tChart1.Axes.Bottom.CalcPosValue(tChart1[0].XValues[i]),tChart1.Axes.Right.CalcYPosValue(tChart1[0].YValues[i]));
                point2= new Point(tChart1.Axes.Bottom.CalcPosValue(tChart1[0].XValues[i]), axis1.CalcYPosValue(tChart1[0].YValues[i]));
                g.Line(point1, point2);
            }
        }
    
        private void InitializeSeries()
        {
            for (int i=0; i<10; i++)
            {
                if (i==0)
                {
                    new Steema.TeeChart.Styles.Area(tChart1.Chart);
                    tChart1.Series[i].XValues.DateTime = true;
                    (tChart1.Series[i] as Steema.TeeChart.Styles.Area).AreaLines.Visible = false;
                    (tChart1.Series[i] as Steema.TeeChart.Styles.Area).Color = Color.BlueViolet;
                    (tChart1.Series[i] as Steema.TeeChart.Styles.Area).Transparency = 20;
                    Random rnd = new Random();
                    for (int j=0; j<10; ++j)
                    {
                        tChart1.Series[i].Add(dt, rnd.Next(100));
                        dt = dt.AddDays(1);
                    }
    
                    tChart1.Series[i].Marks.Visible = false;
                    tChart1.Series[i].VertAxis = Steema.TeeChart.Styles.VerticalAxis.Right;
                }
                else if(i==1)
                {
                    new Steema.TeeChart.Styles.Volume(tChart1.Chart);
                    tChart1.Series[i].DataSource = tChart1.Series[i - 1];
                    tChart1.Series[i].CustomVertAxis = axis1;
                }
            }          
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 2014-09-04
      • 1970-01-01
      相关资源
      最近更新 更多