的TeeChart多轴创作(Teechart multiple axis creation)

2019-10-17 16:27发布

我是新来的C#编程。 我在一家公司工作,有人已经完成了一些任务,并留下图部件。 现在我不得不这样做。

我使用steema图表在C#,我想创建与在图表(y轴)和comman X-所有轴的左侧多轴图表。 上免得侧的每个轴将是不同的轴的长度。

我已经创造了不同的传感器6个检验箱,当我打勾那个箱子然后就轴线默认长度应该会出现。 我创建复选框的,但我不能够设置轴长度也我不能够绘制多个轴。

我不知道这是问路吗? 请原谅我,如果我错了吗? 如果我没有提供太多的信息,那么请问我,我会做到这一点。

我想要绘制图表的类型,如图所示连接的图像中 X轴(系统时间)是很常见的所有系列和Y轴是每个系列的不同。 我有赤盒所有系列所以当随后复选框检查到系列Y轴具有以显示与默认轴范围(例如分钟(0)和最大(1000))。

提前致谢。

Answer 1:

非常类似的东西是在Steema支持论坛前一段时间讨论。 给它一看这里 。

我在这里发表了相同的代码:

    int nSeries = 3;
    private void InitializeChart()
    {
        tChart1.Aspect.View3D = false;
        tChart1.Header.Visible = false;
        tChart1.Legend.Alignment = LegendAlignments.Bottom;
        for (int i = 0; i < nSeries; i++)
        {
            new Steema.TeeChart.Styles.Line(tChart1.Chart);
            tChart1.Axes.Custom.Add(new Steema.TeeChart.Axis(tChart1.Chart));
            tChart1[i].CustomVertAxis = tChart1.Axes.Custom[i];
            tChart1.Axes.Custom[i].AxisPen.Color = tChart1[i].Color;
            tChart1.Axes.Custom[i].Grid.Visible = false;
            tChart1.Axes.Custom[i].Title.Visible = true;
            tChart1.Axes.Custom[i].Title.Caption = "Series" + i.ToString();
            tChart1[i].FillSampleValues(20);
            tChart1.Axes.Custom[i].PositionUnits = PositionUnits.Pixels;
        }

        tChart1.Panel.MarginUnits = PanelMarginUnits.Pixels;
        tChart1.Draw();
        PlaceAxes(0, 0, 0, 0, 0);
        tChart1.Draw();
    }

    private void PlaceAxes(int nSeries, int NextXLeft, int NextXRight, int MargLeft, int MargRight)
    {
        const int extraPos = 12;
        const int extraMargin = 105;
        //Variable
        int MaxLabelsWidth;
        int lenghtTicks;
        int extraSpaceBetweenTitleAndLabels;
        if (tChart1[nSeries].Active)
        {
            MaxLabelsWidth = tChart1.Axes.Custom[nSeries].MaxLabelsWidth();
            lenghtTicks = tChart1.Axes.Custom[nSeries].Ticks.Length;
            extraSpaceBetweenTitleAndLabels = (tChart1.Axes.Custom[nSeries].Title.Width);//- tChart1.Axes.Custom[nSeries].MaxLabelsWidth());
            if (tChart1.Axes.Custom[nSeries].OtherSide)
            {
                tChart1.Axes.Custom[nSeries].RelativePosition = NextXRight;
                NextXRight = NextXRight - (MaxLabelsWidth + lenghtTicks + extraSpaceBetweenTitleAndLabels + extraPos);
                MargRight = MargRight + extraMargin;
            }

            else
            {
                tChart1.Axes.Custom[nSeries].RelativePosition = NextXLeft;
                NextXLeft = NextXLeft - (MaxLabelsWidth + lenghtTicks + extraSpaceBetweenTitleAndLabels + extraPos);
                MargLeft = MargLeft + extraMargin;
            }

            tChart1.Panel.MarginLeft = MargLeft;
            tChart1.Panel.MarginRight = MargRight;

            nSeries++;

            if (nSeries <= tChart1.Series.Count - 1)
            {
                PlaceAxes(nSeries, NextXLeft, NextXRight, MargLeft, MargRight);
            }
        }
    }


文章来源: Teechart multiple axis creation
标签: c# teechart