Я использую flutter charts_flutter: ^ 0.9.0.
Я хочу скрыть и показать два разных набора данных при нажатии кнопки в LineChart.
Не только строка указанных c данных должны быть скрыты, но также ось измерения .
Я уже пытался добавить SeriesLegend, чтобы показать и скрыть указанные c строки диаграмма.
Примерно так:
behaviors: [
new charts.SeriesLegend(
// list of ids to be hidden
defaultHiddenSeries: chartStatus.value == 'both'
? []
: chartStatus.value == 'one'
? ['two']
: ['one'],
// Here you cant hide the Legend
position: charts.BehaviorPosition.bottom,
),
Проблема в том, что есть легенда, показывающая, что я не хочу.
В дополнение к этому:
1. К сожалению, вы также можете скрыть все линии на диаграмме только с помощью свойства defaultRenderer на LineChart
2 .Я могу скрыть желаемую ось, но не линию, которая ей принадлежит.
Надеюсь, код моей линейной диаграммы прояснит это:
class LinearTestsChart extends StatelessWidget {
static const secondaryMeasureAxisId = 'secondaryMeasureAxisId';
final List<charts.Series> seriesList;
final bool animate;
final ValueNotifier<String> chartStatus;
const LinearTestsChart(
{Key key, this.seriesList, this.animate, this.chartStatus})
: super(key: key);
@override
Widget build(BuildContext context) {
return new charts.LineChart(
seriesList,
animate: animate,
domainAxis: new charts.NumericAxisSpec(
renderSpec: new charts.NoneRenderSpec(),
),
// defaultRenderer: ,
primaryMeasureAxis: chartStatus.value == 'both' ||
chartStatus.value == 'one'
? new charts.NumericAxisSpec(
)
: new charts.NumericAxisSpec(
renderSpec: new charts.NoneRenderSpec(),
),
secondaryMeasureAxis: chartStatus.value == 'both' ||
chartStatus.value == 'two'
? new charts.NumericAxisSpec(
)
: new charts.NumericAxisSpec(
renderSpec: new charts.NoneRenderSpec(),
),
behaviors: [
new charts.SeriesLegend(
// list of ids to be hidden
defaultHiddenSeries: chartStatus.value == 'both'
? []
: chartStatus.value == 'one'
? ['two']
: ['one'],
position: null,
),
new charts.LinePointHighlighter(
showVerticalFollowLine:
charts.LinePointHighlighterFollowLineType.none,
dashPattern: [],
defaultRadiusPx: 0,
drawFollowLinesAcrossChart: false,
),
],
);
}
}