【问题标题】:is there any method for creating 3D charts in flutter有什么方法可以在颤振中创建 3D 图表
【发布时间】:2019-01-11 06:04:24
【问题描述】:

我想在我的应用程序中制作一个 3D 饼图,但我发现很难找到在图表中显示所选区域面积的百分比和名称的解决方案。

我正在使用 AnimatedCircularChart 并且该软件包是: 导入'package:flutter_circular_chart/flutter_circular_chart.dart';

 > AnimatedCircularChart(
            key: _chartKey,
      size: _chartSize,
      initialChartData: _quarterlyProfitPieData[0],
      chartType: CircularChartType.Pie,

我想要所选区域上方的标签。

【问题讨论】:

    标签: dart flutter-layout


    【解决方案1】:

    请试试这个包flutter_echarts:https://pub.dev/packages/flutter_echarts

    具备WebGL 3D Charts功能

    看这个例子: https://github.com/entronad/flutter_echarts/tree/master/example

    【讨论】:

    • 在这个 3d 图表中看不到手机设备上的工具提示
    【解决方案2】:

    Flutter Circular Chart 是很酷的动画图表库,但很难在其上添加标签等自定义修改。 我发现Chart Flutter library 是您的案例的一个很好的选择。它可以创建带有自定义标签的饼图。最好的部分是你也可以为它制作动画。这个由 Google 团队维护的开源库。

    这里有一些使用 Chart Flutter 的示例代码实现:

    import 'package:charts_flutter/flutter.dart' as charts;
    import 'package:flutter/material.dart';
    
    class PieOutsideLabelChart extends StatelessWidget {
      final List<charts.Series> seriesList;
      final bool animate;
    
      PieOutsideLabelChart(this.seriesList, {this.animate});
    
      /// Creates a [PieChart] with sample data and no transition.
      factory PieOutsideLabelChart.withSampleData() {
        return new PieOutsideLabelChart(
          _createSampleData(),
          // Disable animations for image tests.
          animate: false,
        );
      }
    
    
      @override
      Widget build(BuildContext context) {
        return new charts.PieChart(seriesList,
            animate: animate,
            // Add an [ArcLabelDecorator] configured to render labels outside of the
            // arc with a leader line.
            //
            // Text style for inside / outside can be controlled independently by
            // setting [insideLabelStyleSpec] and [outsideLabelStyleSpec].
            //
            // Example configuring different styles for inside/outside:
            //       new charts.ArcLabelDecorator(
            //          insideLabelStyleSpec: new charts.TextStyleSpec(...),
            //          outsideLabelStyleSpec: new charts.TextStyleSpec(...)),
            defaultRenderer: new charts.ArcRendererConfig(arcRendererDecorators: [
              new charts.ArcLabelDecorator(
                  labelPosition: charts.ArcLabelPosition.outside)
            ]));
      }
    
      /// Create one series with sample hard coded data.
      static List<charts.Series<LinearSales, int>> _createSampleData() {
        final data = [
          new LinearSales(0, 100),
          new LinearSales(1, 75),
          new LinearSales(2, 25),
          new LinearSales(3, 5),
        ];
    
        return [
          new charts.Series<LinearSales, int>(
            id: 'Sales',
            domainFn: (LinearSales sales, _) => sales.year,
            measureFn: (LinearSales sales, _) => sales.sales,
            data: data,
            // Set a label accessor to control the text of the arc label.
            labelAccessorFn: (LinearSales row, _) => '${row.year}: ${row.sales}',
          )
        ];
      }
    }
    
    /// Sample linear data type.
    class LinearSales {
      final int year;
      final int sales;
    
      LinearSales(this.year, this.sales);
    }
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-16
      • 2020-11-27
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2011-09-06
      相关资源
      最近更新 更多