我试图按里程(公里)对列表顺序进行排序。它是成功的。原因图表是相同的方向。(20 -> 7 -> 13)
但我想反转折线图。(13 -> 7 -> 20)按日期排序。所以我写了以下代码。
LineChartBarData(
spots: spots.reversed.toList()
)
但它不像下图那样工作。在我的调试器中,列表肯定是颠倒的。
它有什么问题?
我的答案
我认为此功能在 FlCharts 中尚不可用,或者没有明确记录。
有两点需要注意:
FlSpots
。X-axis
. 如果您在此处查看 flChart 源,则有一些逻辑可以计算 minX 和 maxX,然后将其用于轴。这可能是我假设和测试的技巧,最终没有轴标签。由于您没有共享代码,因此我正在使用他们文档中的示例之一。检查以下代码和结果。
LineChartData mainData() {
return LineChartData(
gridData: FlGridData(
show: true,
drawVerticalLine: true,
getDrawingHorizontalLine: (value) {
return FlLine(
color: const Color(0xff37434d),
strokeWidth: 1,
);
},
getDrawingVerticalLine: (value) {
return FlLine(
color: const Color(0xff37434d),
strokeWidth: 1,
);
},
),
titlesData: FlTitlesData(
show: true,
bottomTitles: SideTitles(
showTitles: true,
reservedSize: 22,
textStyle: const TextStyle(
color: Color(0xff68737d),
fontWeight: FontWeight.bold,
fontSize: 16),
margin: 8,
),
leftTitles: SideTitles(
showTitles: true,
textStyle: const TextStyle(
color: Color(0xff67727d),
fontWeight: FontWeight.bold,
fontSize: 15,
),
getTitles: (value) {
switch (value.toInt()) {
case 1:
return '10k';
case 3:
return '30k';
case 5:
return '50k';
}
return '';
},
reservedSize: 28,
margin: 12,
),
),
borderData: FlBorderData(
show: true,
border: Border.all(color: const Color(0xff37434d), width: 1)),
minX: 11,
maxX: 0,
minY: 0,
maxY: 6,
lineBarsData: [
LineChartBarData(
spots: [
FlSpot(0, 3),
FlSpot(2.6, 2),
FlSpot(4.9, 5),
FlSpot(6.8, 3.1),
FlSpot(8, 4),
FlSpot(9.5, 3),
FlSpot(11, 4),
],
isCurved: true,
barWidth: 5,
isStrokeCapRound: true,
),
],
);
}
minX: 0
和_maxX:11
minX: 11
和_maxX:0
这里轴是颠倒的,但是轴标签丢失了。您将不得不自己检查或在他们的回购中提出问题。