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

如何配置PHPlot仅绘制指定间隔的温度测量记录?

嘿,我来帮你搞定这个问题!你想让PHPlot只绘制每第10条温度记录,其实不需要PHPlot本身的特殊设置——核心是在给PHPlot传数据之前,先把要显示的记录筛选出来,有两种高效的方式:

1. 直接在数据库查询时筛选(推荐)

这种方法最省资源,因为不用把所有数据都拉到PHP里再处理。你可以用MySQL的窗口函数给每条记录编号,然后只保留编号是10的倍数的记录。修改你的查询语句:

$query = mysql_query("
    SELECT data, temperatura 
    FROM (
        SELECT data, temperatura, 
               ROW_NUMBER() OVER (ORDER BY data DESC) AS row_num
        FROM arduino
    ) AS temp_table
    WHERE row_num % 10 = 0 -- 取第10、20、30...条记录,想从第1条开始就改成%10=1
    ORDER BY data DESC
");

解释一下:内层查询给每条按时间倒序的记录分配一个序号row_num,外层查询只保留序号能被10整除的记录,这样就直接拿到了每10条里的一条。

2. 在PHP数组中过滤数据

如果你的MySQL版本不支持窗口函数(比如低于8.0),可以在PHP循环取数据的时候,用计数器筛选:

$data = array();
$counter = 0;
while ($row = mysql_fetch_assoc($query)) {
    // 每10条记录保留一条,这里的条件可以根据需求调整
    if ($counter % 10 == 0) {
        $data[] = $row;
    }
    $counter++;
}

这种方式就是遍历所有从数据库拿到的记录,只把符合间隔条件的存入$data数组,再传给PHPlot。

关于PHPlot本身的设置

遗憾的是,PHPlot并没有内置“跳过N条记录绘制”的选项——它会严格按照你传入的$data数组内容绘制,所以关键还是提前处理好数据源。

另外提个小建议:你现在用的mysql_*扩展已经被PHP官方废弃了,建议换成mysqli或者PDO,这样更安全也更兼容新版本PHP哦!

内容的提问来源于stack exchange,提问作者andrzej andrzejewski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:52:07