You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用com.jjoe64.graphview绘制图表时初始出现额外线条的问题

问题原因分析

你遇到的额外线条,本质是GraphView的LineGraphSeries绘制逻辑导致的:

  • 你的graph2LastXValue初始值设为了5d,第一次触发onTick时x值会变成6d,也就是第一个被绘制的数据点坐标是(6, 115)。
  • 而你给x轴设置了setMinX(0),当LineGraphSeries的第一个数据点x坐标不等于x轴最小值时,它会默认从x轴最小值对应的(0,0)位置,绘制一条连线到第一个数据点,这就是红框里的那条额外线条。
解决方案

这里给你两种简单的修复方式,选哪种都可以:

方式一:调整初始x值,让第一个数据点从x=0开始

把graph2LastXValue的初始值改成-1d,这样第一次onTick时x值会自动变成0d,第一个数据点就从x轴起点开始,不会出现额外连线:

// 原代码
private double graph2LastXValue = 5d;
// 修改为
private double graph2LastXValue = -1d;

方式二:初始化时先添加x=0的起始点

在onCreate中初始化mSeries2之后,先手动添加一个x=0、y值为第一个数据点的点,同时调整计数器初始值:

// 在graph2.addSeries(mSeries2);之前添加
mSeries2.appendData(new DataPoint(0, BP_Data[0]), true, 200);
// 把i的初始值改成1,避免重复绘制第一个数据
int i=1;

这样后续onTick时从第二个数据点开始绘制,线条会从(0,115)开始,自然不会出现额外线条。

额外小提示

如果你后续需要重置计时器重新绘制,记得在cTimer.cancel()之后,把i和graph2LastXValue都重置回初始值,避免数据错位哦。

内容的提问来源于stack exchange,提问作者Ragul Murugan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:37:32