Flutter图表绘制插件scidart_plot的使用

Flutter图表绘制插件scidart_plot的使用

SciDart Plot 是一个与 SciDart 兼容的数据可视化库。该库是 SciDart 项目 的一部分。

🏹 目标

生成并保存 SVG 格式的图表。

🏃 动机

使 SciDart 的数据可视化更加简单。

🧭 PUB 链接

该库在 Pub 仓库中的链接:https://pub.dev/packages/scidart_plot

🔌 安装

你可以在 Pub 网站上找到安装说明:https://pub.dev/packages/scidart_plot#-installing-tab-

⚒ 示例

示例可以在此项目的网站上找到:https://scidart.org/

📈 图表格式生成

支持的格式包括:

  • svg

🛣 项目里程碑

所有项目的状态将在 GitHub 的 Projects 部分共享和更新。

🙌 如何贡献

建议查看 Projects 部分,选择一个任务或解决一个与 SciDart 相关的问题,并实现缺失的部分。阅读文件 CONTRIBUTING.md

所有函数的参考值来自 SciPy。贡献也需要以 SciPy 作为参考。

每次贡献都需要包含测试、文档和示例,否则拉取请求将被阻止。

☕ 支持者

SciDart 是一个开源项目,运行依赖于捐款来支付账单(例如域名)。如果你想支持 SciDart,可以通过 这里 购买一杯咖啡。

⚠ 许可证

版权所有 © 2019 至今 Angelo Polotto 和贡献者。SciDart 是根据 Apache-2.0 许可证发布的免费和开源软件。官方标志由 Juliano Polotto 创建,并且在 CC BY-SA 4.0 国际许可证下分发。

第三方库许可证:

示例代码

以下是使用 scidart_plot 插件的基本示例代码:

import 'package:scidart/numdart.dart'; // 引入数值计算库
import 'package:scidart_plot/scidart_plot.dart'; // 引入绘图库

void main() {
  // 定义变量
  var N = 0.1; // 时间范围
  var n = linspace(0, N, num: 50, endpoint: false); // 生成时间序列
  var f1 = 60.0; // 频率
  var sg = arraySin(arrayMultiplyToScalar(n, 2 * pi * f1)); // 生成正弦波信号

  // 创建四条线图
  var line1 = PlotGeneral(ay: sg); // 线图
  var line2 = PlotGeneral(
      ay: arrayDivisionToScalar(sg, 1.5), // 信号除以1.5
      plotGeneralType: PlotGeneralType.Dot, // 点图类型
      stroke: Color.blue); // 设置颜色为蓝色
  var line3 = PlotGeneral(
      ay: arrayDivisionToScalar(sg, 2), // 信号除以2
      plotGeneralType: PlotGeneralType.Stem, // 干线图类型
      stroke: Color.green); // 设置颜色为绿色
  var line4 = PlotGeneral(
      ay: arrayDivisionToScalar(sg, 3), // 信号除以3
      plotGeneralType: PlotGeneralType.Bar, // 柱状图类型
      stroke: Color.purple); // 设置颜色为紫色

  // 创建图例项
  var legend1 = LegendItem('line 1');
  var legend2 = LegendItem('line 2');
  var legend3 = LegendItem('line 3');
  var legend4 = LegendItem('line 4');

  // 创建图表
  var plotExample = canvasGeneral(
      ax: n, // x轴数据
      lines: [line1, line2, line3, line4], // 图表中的线
      title: 'Example plot', // 图表标题
      legend: Legend(
          [legend1, legend2, legend3, legend4], LegendPosition.topRight)); // 图例位置

  // 打印图表的 XML 表达式
  print(plotExample.toXML());
}

更多关于Flutter图表绘制插件scidart_plot的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter图表绘制插件scidart_plot的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter应用中使用scidart_plot插件来绘制图表的示例代码。scidart_plot是一个用于Flutter的图表绘制库,可以方便地绘制各种类型的图表。

首先,确保你已经在pubspec.yaml文件中添加了scidart_plot依赖:

dependencies:
  flutter:
    sdk: flutter
  scidart_plot: ^最新版本号  # 请替换为最新版本号

然后,运行flutter pub get来安装依赖。

接下来,是一个简单的示例代码,展示如何使用scidart_plot来绘制一个基本的折线图:

import 'package:flutter/material.dart';
import 'package:scidart_plot/scidart_plot.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Scidart Plot Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Scidart Plot Example'),
        ),
        body: PlotExample(),
      ),
    );
  }
}

class PlotExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 定义数据
    List<double> x = [1, 2, 3, 4, 5];
    List<double> y = [1, 4, 9, 16, 25];

    // 创建图表
    var plot = LinePlot(
      dataX: x,
      dataY: y,
      title: 'Line Plot Example',
      xlabel: 'X Axis',
      ylabel: 'Y Axis',
      lineColor: Colors.blue,
      lineWidth: 2.0,
      markerColor: Colors.red,
      markerSize: 6.0,
    );

    // 使用PlotWidget显示图表
    return PlotWidget(plot: plot);
  }
}

在这个示例中,我们做了以下几件事:

  1. 定义数据:我们创建了两个列表xy,分别存储X轴和Y轴的数据。
  2. 创建图表:使用LinePlot类创建一个折线图,并设置标题、轴标签、线条颜色、线条宽度、标记颜色和标记大小等属性。
  3. 显示图表:使用PlotWidget组件将图表显示在Flutter应用中。

你可以根据需要调整图表的各种属性,或者尝试使用scidart_plot提供的其他图表类型,比如散点图、柱状图、饼图等。以下是另一个示例,展示如何绘制一个散点图:

var scatterPlot = ScatterPlot(
  dataX: x,
  dataY: y,
  title: 'Scatter Plot Example',
  xlabel: 'X Axis',
  ylabel: 'Y Axis',
  markerColor: Colors.green,
  markerSize: 8.0,
);

return PlotWidget(plot: scatterPlot);

这个示例代码几乎与之前的折线图示例相同,只是将LinePlot替换为了ScatterPlot,并调整了标记颜色和大小。

希望这些示例代码能帮助你开始在Flutter应用中使用scidart_plot插件来绘制图表!

回到顶部