【问题标题】:How to align multiple bar series vertically in teechart?如何在 teechart 中垂直对齐多个条形系列?
【发布时间】:2015-11-18 14:45:45
【问题描述】:

我们正在使用适用于 .Net 的 TeeChart,版本 v2014 [2014 年 2 月 24 日] 发布 4.1.2014.02240-02244。 我们面临的问题是在多面板图中垂直对齐堆栈栏系列。多面板图是使用两个左自定义轴创建的,如下图所示。

上面板图(即 Panel1)有一个线工具,用于具有类似外观的轴。 但请注意,两个面板图的底轴是通用的。

这个系列图中的问题是,bar 看起来不是垂直对齐的,即使它们在系列数据中有共同的 x 值。 这是系列数据: 面板 1 系列数据有四个点:{(10, 0.2), (20, 0.9), (30, 0.1), (40, 0.5)} Panel 2 系列数据有四个点:{(10, 0.4), (20, 0.2), (30, 0.7), (40, 0.3)}

以下是生成上述图表的源代码。

private void PanelPlot_Load(object sender, EventArgs e)
    {            
        //Add series            
        tChart1.Series.Add(P1_Series2);
        tChart1.Series.Add(P2_Series2);            
        tChart1.Series.Add(seriesForRightAxis);

        tChart1.Series[0].Add(10, 0.4);
        tChart1.Series[0].Add(20, 0.2);
        tChart1.Series[0].Add(30, 0.7);
        tChart1.Series[0].Add(40, 0.3);


        tChart1.Series[1].Add(10, 0.1);
        tChart1.Series[1].Add(20, 0.32);
        tChart1.Series[1].Add(30, 0.2);
        tChart1.Series[1].Add(40, 1);


        tChart1.Axes.Bottom.Minimum = 0;
        tChart1.Axes.Bottom.Maximum = 40;
        tChart1.Axes.Bottom.Increment = 10;

        //--------------------------Left axis---------------------- 
        Steema.TeeChart.Axis axis = tChart1.Axes.Left;

        axis.AxisPen.Color = Color.Gray;
        axis.StartPosition = 0;
        axis.EndPosition = 48;
        axis.Minimum = 0;
        axis.Maximum = 1;
        axis.Increment = 0.2;
        axis.Automatic = true; 

        // create custom axes
        leftCustom = new Steema.TeeChart.Axis(tChart1.Chart);
        tChart1.Axes.Custom.Add(leftCustom);
        leftCustom.AxisPen.Color = Color.Gray;
        leftCustom.StartPosition =  52;
        leftCustom.EndPosition = 100;
        leftCustom.Minimum = 0;
        leftCustom.Maximum = 1;
        leftCustom.Increment = 0.2;

        // associate series
        P1_Series1.VertAxis = Steema.TeeChart.Styles.VerticalAxis.Left;
        P1_Series2.VertAxis = Steema.TeeChart.Styles.VerticalAxis.Left;
        P1_Series3.VertAxis = Steema.TeeChart.Styles.VerticalAxis.Left;

        P2_Series1.CustomVertAxis = leftCustom;
        P2_Series2.CustomVertAxis = leftCustom;
        P2_Series3.CustomVertAxis = leftCustom;


        //---------------------- Right Axies --------------------------

        seriesForRightAxis.VertAxis = Steema.TeeChart.Styles.VerticalAxis.Right;

        Steema.TeeChart.Axis axis1 = tChart1.Axes.Right;
        axis1.AxisPen.Color = Color.Gray;
        axis1.StartPosition = 0;
        axis1.EndPosition = 100;
        axis1.Maximum = 300;
        axis1.Minimum = 0;
        axis1.Increment = 100;

        tChart1.Series[2].Add(10, 50);
        tChart1.Series[2].Add(10, 100);
        tChart1.Series[2].Add(10, 150);
        tChart1.Series[2].Add(20, 200);
        tChart1.Series[2].Add(20, 250);
        tChart1.Series[2].Transparency = 100;

        tChart1.Axes.Right.Labels.Items.Add(100, "100");
        tChart1.Axes.Right.Labels.Items.Add(200, "200");
        tChart1.Axes.Right.Labels.Items.Add(300, "300");
        tChart1.Axes.Right.Labels.Items.Add(400, "400");
        tChart1.Axes.Right.Grid.Visible = false; ;

    }

请建议是否有任何方法可以在这种情况下对齐条形。

提前致谢!

【问题讨论】:

    标签: c# .net teechart


    【解决方案1】:

    尝试将MultiBar 设置为MultiBars.None

    P1_Series2.MultiBar = Steema.TeeChart.Styles.MultiBars.None;
    P2_Series2.MultiBar = Steema.TeeChart.Styles.MultiBars.None;
    

    【讨论】:

    • 如果每个垂直轴只有一个条形图,则此解决方案有效。 OP没问题,但我觉得这里应该提一下。
    • 你是对的。我已将其添加到公共跟踪器 #2196
    猜你喜欢
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多