Dimensions in React 3D Chart control

10 Jan 202416 minutes to read

Size for container

The 3D chart can be rendered to its container size and it can be set via inline or CSS as demonstrated below.

    <div id='container'>
        <div id='element' style="width:650px; height:350px;"></div>
    </div>
import { Chart3DComponent, Chart3DSeriesCollectionDirective, Chart3DSeriesDirective, Inject, Legend3D, DataLabel3D, Category3D, Tooltip3D, ColumnSeries3D, Highlight3D } from '@syncfusion/ej2-react-charts';
import * as React from "react";
import * as ReactDOM from "react-dom";

function App() {
    const data = [
        { month: 'Jan', sales: 35 }, { month: 'Feb', sales: 28 },
        { month: 'Mar', sales: 34 }, { month: 'Apr', sales: 32 },
        { month: 'May', sales: 40 }, { month: 'Jun', sales: 32 },
        { month: 'Jul', sales: 35 }, { month: 'Aug', sales: 55 },
        { month: 'Sep', sales: 38 }, { month: 'Oct', sales: 30 },
        { month: 'Nov', sales: 25 }, { month: 'Dec', sales: 32 }
      ];
      return <Chart3DComponent id='charts' width="650px" height="350px" style= primaryXAxis=
          wallColor='transparent'
          enableRotation={true} rotation={7} tilt={10} depth={100}>
          <Inject services={[ColumnSeries3D, Legend3D, Tooltip3D, Category3D, DataLabel3D, Highlight3D]} />
          <Chart3DSeriesCollectionDirective >
              <Chart3DSeriesDirective dataSource={data} xName='month' yName='sales' type='Column'>
              </Chart3DSeriesDirective>
          </Chart3DSeriesCollectionDirective>
      </Chart3DComponent>;
}
;
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));
import { Chart3DComponent, Chart3DSeriesCollectionDirective, Chart3DSeriesDirective, Inject, Legend3D, DataLabel3D, Category3D, Tooltip3D, ColumnSeries3D, Highlight3D } from '@syncfusion/ej2-react-charts';
import * as React from "react";
import * as ReactDOM from "react-dom";

function App() {
  const data = [
    { month: 'Jan', sales: 35 }, { month: 'Feb', sales: 28 },
    { month: 'Mar', sales: 34 }, { month: 'Apr', sales: 32 },
    { month: 'May', sales: 40 }, { month: 'Jun', sales: 32 },
    { month: 'Jul', sales: 35 }, { month: 'Aug', sales: 55 },
    { month: 'Sep', sales: 38 }, { month: 'Oct', sales: 30 },
    { month: 'Nov', sales: 25 }, { month: 'Dec', sales: 32 }
  ];
  return <Chart3DComponent id='charts' width="650px" height="350px" style= primaryXAxis=
      wallColor='transparent'
      enableRotation={true} rotation={7} tilt={10} depth={100}>
      <Inject services={[ColumnSeries3D, Legend3D, Tooltip3D, Category3D, DataLabel3D, Highlight3D]} />
      <Chart3DSeriesCollectionDirective >
          <Chart3DSeriesDirective dataSource={data} xName='month' yName='sales' type='Column'>
          </Chart3DSeriesDirective>
      </Chart3DSeriesCollectionDirective>
  </Chart3DComponent>;
};
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));

Size for chart

The size of the 3D chart can be set directly through width and height properties.

In Pixel

The size of the 3D chart can be set in pixel as demonstrated below.

import { Category3D, Chart3DComponent, Chart3DSeriesCollectionDirective, DataLabel3D, Highlight3D, Legend3D, Tooltip3D, Chart3DSeriesDirective, ColumnSeries3D, Inject } from '@syncfusion/ej2-react-charts';
import * as ReactDOM from "react-dom";

function App() {
    const data = [
        { month: 'Jan', sales: 35 }, { month: 'Feb', sales: 28 },
        { month: 'Mar', sales: 34 }, { month: 'Apr', sales: 32 },
        { month: 'May', sales: 40 }, { month: 'Jun', sales: 32 },
        { month: 'Jul', sales: 35 }, { month: 'Aug', sales: 55 },
        { month: 'Sep', sales: 38 }, { month: 'Oct', sales: 30 },
        { month: 'Nov', sales: 25 }, { month: 'Dec', sales: 32 }
      ];
      return <Chart3DComponent id='charts' width="650" height="350" style= primaryXAxis=
          wallColor='transparent'
          enableRotation={true} rotation={7} tilt={10} depth={100}>
          <Inject services={[ColumnSeries3D, Legend3D, Tooltip3D, Category3D, DataLabel3D, Highlight3D]} />
          <Chart3DSeriesCollectionDirective >
              <Chart3DSeriesDirective dataSource={data} xName='month' yName='sales' type='Column'>
              </Chart3DSeriesDirective>
          </Chart3DSeriesCollectionDirective>
      </Chart3DComponent>;
}
;
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));
import { Category3D, Chart3DComponent, Chart3DSeriesCollectionDirective, DataLabel3D, Highlight3D, Legend3D, Tooltip3D, Chart3DSeriesDirective, ColumnSeries3D, Inject } from '@syncfusion/ej2-react-charts';
import * as React from "react";
import * as ReactDOM from "react-dom";

function App() {
  const data = [
    { month: 'Jan', sales: 35 }, { month: 'Feb', sales: 28 },
    { month: 'Mar', sales: 34 }, { month: 'Apr', sales: 32 },
    { month: 'May', sales: 40 }, { month: 'Jun', sales: 32 },
    { month: 'Jul', sales: 35 }, { month: 'Aug', sales: 55 },
    { month: 'Sep', sales: 38 }, { month: 'Oct', sales: 30 },
    { month: 'Nov', sales: 25 }, { month: 'Dec', sales: 32 }
  ];
  return <Chart3DComponent id='charts' width="650" height="350" style= primaryXAxis=
      wallColor='transparent'
      enableRotation={true} rotation={7} tilt={10} depth={100}>
      <Inject services={[ColumnSeries3D, Legend3D, Tooltip3D, Category3D, DataLabel3D, Highlight3D]} />
      <Chart3DSeriesCollectionDirective >
          <Chart3DSeriesDirective dataSource={data} xName='month' yName='sales' type='Column'>
          </Chart3DSeriesDirective>
      </Chart3DSeriesCollectionDirective>
  </Chart3DComponent>;
};
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));

In Percentage

By setting the value in percentage, 3D chart gets its dimension with respect to its container. For example, when the height is 50%, chart renders to half of the container height.

import { Chart3DComponent, Chart3DSeriesCollectionDirective, Chart3DSeriesDirective, Inject, Legend3D, DataLabel3D, Category3D, Tooltip3D, ColumnSeries3D, Highlight3D } from '@syncfusion/ej2-react-charts';
import * as React from "react";
import * as ReactDOM from "react-dom";

function App() {
    const data = [
        { month: 'Jan', sales: 35 }, { month: 'Feb', sales: 28 },
        { month: 'Mar', sales: 34 }, { month: 'Apr', sales: 32 },
        { month: 'May', sales: 40 }, { month: 'Jun', sales: 32 },
        { month: 'Jul', sales: 35 }, { month: 'Aug', sales: 55 },
        { month: 'Sep', sales: 38 }, { month: 'Oct', sales: 30 },
        { month: 'Nov', sales: 25 }, { month: 'Dec', sales: 32 }
      ];
      return <Chart3DComponent id='charts' width="80%" height="90%" style= primaryXAxis=
          wallColor='transparent'
          enableRotation={true} rotation={7} tilt={10} depth={100}>
          <Inject services={[ColumnSeries3D, Legend3D, Tooltip3D, Category3D, DataLabel3D, Highlight3D]} />
          <Chart3DSeriesCollectionDirective >
              <Chart3DSeriesDirective dataSource={data} xName='month' yName='sales' type='Column'>
              </Chart3DSeriesDirective>
          </Chart3DSeriesCollectionDirective>
      </Chart3DComponent>;
}
;
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));
import { Chart3DComponent, Chart3DSeriesCollectionDirective, Chart3DSeriesDirective, Inject, Legend3D, DataLabel3D, Category3D, Tooltip3D, ColumnSeries3D, Highlight3D } from '@syncfusion/ej2-react-charts';
import * as React from "react";
import * as ReactDOM from "react-dom";

function App() {
  const data = [
    { month: 'Jan', sales: 35 }, { month: 'Feb', sales: 28 },
    { month: 'Mar', sales: 34 }, { month: 'Apr', sales: 32 },
    { month: 'May', sales: 40 }, { month: 'Jun', sales: 32 },
    { month: 'Jul', sales: 35 }, { month: 'Aug', sales: 55 },
    { month: 'Sep', sales: 38 }, { month: 'Oct', sales: 30 },
    { month: 'Nov', sales: 25 }, { month: 'Dec', sales: 32 }
  ];
  return <Chart3DComponent id='charts' width="80%" height="90%" style= primaryXAxis=
      wallColor='transparent'
      enableRotation={true} rotation={7} tilt={10} depth={100}>
      <Inject services={[ColumnSeries3D, Legend3D, Tooltip3D, Category3D, DataLabel3D, Highlight3D]} />
      <Chart3DSeriesCollectionDirective >
          <Chart3DSeriesDirective dataSource={data} xName='month' yName='sales' type='Column'>
          </Chart3DSeriesDirective>
      </Chart3DSeriesCollectionDirective>
  </Chart3DComponent>;
};
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));

Note: When you do not specify the size, it takes 450px as the height and window size as its width.