Aheho
Aheho

Reputation: 12821

setting axis minumum as negative number, but have bar extend down to origin instead of zero

I have 2 bar series in a tee chart. One is a percent value between 0 and 100 and uses the left axis. The other is a temperature, uses the right axis, and the range of possible values is between -40F and 160F.

I would like both bars to start at the bottom axis. I thought that the UseOrigin and Origin properties of the series would do this but apparently it doesn't work.

Below is my code:

        chartTank = new TChart();
        chartTank.Axes.Left.Grid.Visible = false;
        chartTank.Axes.Right.Grid.Visible = false;
        chartTank.Axes.Right.Maximum = 160.0;
        chartTank.Axes.Right.Minimum = -40;
        chartTank.Axes.Right.Increment = 40;

        chartTank.Axes.Right.Automatic = false;
        chartTank.Axes.Right.AutomaticMinimum = false;
        chartTank.Axes.Right.AutomaticMaximum = false;

        chartTank.Aspect.View3D = false;
        chartTank.Panel.Bevel.Inner = Steema.TeeChart.Drawing.BevelStyles.None;
        chartTank.Panel.Bevel.Outer = Steema.TeeChart.Drawing.BevelStyles.None;
        chartTank.Axes.Left.Grid.Visible = false;
        chartTank.Axes.Bottom.GridCentered = false;
        chartTank.Axes.Bottom.Ticks.Visible = false;
        chartTank.Axes.Left.Automatic = false;
        chartTank.Axes.Left.Minimum = 0;
        chartTank.Axes.Left.Maximum = 100;
        chartTank.Axes.Right.Visible = true;


        var barProduct = new Steema.TeeChart.Styles.Bar();
        barProduct.MultiBar = MultiBars.Stacked;
        barProduct.Color = Color.Green;

        barProduct.Marks.Visible = false;
        barProduct.Title = "% Vol";
        barProduct.ShowInLegend = true;
        chartTank.Series.Add(barProduct);


        var barTemperature = new Steema.TeeChart.Styles.Bar();
        barTemperature.MultiBar = MultiBars.None;
        barTemperature.Color = Color.FromArgb(153, 74, 11);

        barTemperature.Marks.Visible = false;
        barTemperature.VertAxis = VerticalAxis.Right;
        barTemperature.UseOrigin = true;
        barTemperature.Origin = -40;
        barTemperature.Title = "Temperature";
        barTemperature.ShowInLegend = true;
        chartTank.Series.Add(barTemperature);

        Controls.Add(chartTank);

Here is the result: enter image description here

I am using TeeChart 2014 4.1 for .NET running on windows CE 6.0

Upvotes: 0

Views: 436

Answers (1)

Christopher Ireland
Christopher Ireland

Reputation: 166

The following code:

private void InitializeChart()
{
  tChart1.Axes.Right.Grid.Visible = false;
  tChart1.Axes.Right.Maximum = 160.0;
  tChart1.Axes.Right.Minimum = -40;
  tChart1.Axes.Right.Increment = 40;

  tChart1.Axes.Right.Automatic = false;
  tChart1.Axes.Right.AutomaticMinimum = false;
  tChart1.Axes.Right.AutomaticMaximum = false;

  tChart1.Aspect.View3D = false;
  tChart1.Panel.Bevel.Inner = Steema.TeeChart.Drawing.BevelStyles.None;
  tChart1.Panel.Bevel.Outer = Steema.TeeChart.Drawing.BevelStyles.None;
  tChart1.Axes.Left.Grid.Visible = false;
  tChart1.Axes.Bottom.Grid.Centered = false;
  tChart1.Axes.Bottom.Ticks.Visible = false;
  tChart1.Axes.Left.Automatic = false;
  tChart1.Axes.Left.Minimum = 0;
  tChart1.Axes.Left.Maximum = 100;
  tChart1.Axes.Right.Visible = true;


  var barProduct = new Steema.TeeChart.Styles.Bar();
  barProduct.MultiBar = MultiBars.Side;
  barProduct.Color = Color.Green;

  barProduct.Marks.Visible = false;
  barProduct.Title = "% Vol";
  barProduct.ShowInLegend = true;

  Random rnd = new Random();

  for (int i = 0; i < 10; i++)
  {
    barProduct.Add(rnd.Next(0, 100));
  }

  tChart1.Series.Add(barProduct);

  var barTemperature = new Steema.TeeChart.Styles.Bar();
  barTemperature.MultiBar = MultiBars.Side;
  barTemperature.Color = Color.FromArgb(153, 74, 11);

  barTemperature.Marks.Visible = false;
  barTemperature.VertAxis = VerticalAxis.Right;
  barTemperature.UseOrigin = true;
  barTemperature.Origin = -40;
  barTemperature.Title = "Temperature";
  barTemperature.ShowInLegend = true;
  for (int i = 0; i < 10; i++)
  {
    barTemperature.Add(rnd.Next(-40, 160));
  }
  tChart1.Series.Add(barTemperature);

  tChart1.Panel.Gradient.Visible = false;
  tChart1.Walls.Back.Gradient.Visible = false;
  tChart1.Panel.Color = Color.White;
  tChart1.Walls.Back.Color = Color.White;
}

gives me the following chart:

enter image description here

Do you get the same results at your end?

Upvotes: 2

Related Questions