Appearance customization in Flutter Pyramid Chart

18 Nov 20186 minutes to read

Chart sizing

The chart renders based on the parent widget size. If you need the chart to be rendered in a specific size, set the width and height on the parent widget.

@override
    Widget build(BuildContext context) {
      final List<ChartData> chartData = [
            ChartData('Jan', 35),
            ChartData('Feb', 28),
            ChartData('Mar', 38),
            ChartData('Apr', 32),
            ChartData('May', 40)
        ];
        return Scaffold(
          body: Center(
            child: Container(
              height: 300,
              width: 350,
              child: SfPyramidChart(
                series: PyramidSeries<ChartData, String>(
                dataSource: chartData,
                xValueMapper: (ChartData data, _) => data.x,
                yValueMapper: (ChartData data, _) => data.y)
               )
             )
           )
         );
        }
    class ChartData {
      ChartData(this.x, this.y);
      final String x;
      final double y;
    }

Chart margin

The chart margin can be specified using the margin property.

@override
    Widget build(BuildContext context) {
      return Scaffold(
        body: Center(
            child: Container(
              child: SfPyramidChart(
                borderColor: Colors.red,
              borderWidth: 2,
              margin: EdgeInsets.all(15),
              series: PyramidSeries<ChartData, String>(
                dataSource: chartData,
                xValueMapper: (ChartData data, _) => data.x,
                yValueMapper: (ChartData data, _) => data.y)
              )
            )
          )
      );
    }

margin

Chart area customization

You can customize the chart area using the following properties.

@override
    Widget build(BuildContext context) {
      return Scaffold(
        body: Center(
            child: Container(
              height: 300, 
              width: 350, 
              child: SfPyramidChart(
                backgroundColor: Colors.lightGreen,
                backgroundImage: AssetImage('images/liveChart.png'),
                series: PyramidSeries<ChartData, String>(
                dataSource: chartData,
                xValueMapper: (ChartData data, _) => data.x,
                yValueMapper: (ChartData data, _) => data.y,)
              )
            )
          )
        );
      }

customization