gpt4 book ai didi

sqlite - 来自日期和时间与温度的sqlite数据库的数据的gnuplot?

转载 作者:行者123 更新时间:2023-12-03 18:35:14 24 4
gpt4 key购买 nike

我有一个远程数据采集系统,将站点温度记录到远程系统上的 sqlite3 数据库中。数据库包含一个“ View ”以显示最近 48 小时的运行数据。远程系统定期将数据库 View 的结果导出到名为 last48.csv 的文件中,该文件具有以下数据格式:

"timestamp", "temp"
"2015-01-15 00:00:02", "18.6"
"2015-01-15 00:15:02", "18.4"
"2015-01-15 00:30:02", "18.2"
"2015-01-15 00:45:02", "18.5"
"2015-01-15 01:00:01", "18.3"
"2015-01-15 01:15:02", "18.2"

我想以编程方式使用 gnuplot 获取 last48 文件数据并生成我的 48 小时数据(x=datetime vs y=temperature)的 x/y 线图的图形文件,以包含在已经获取的 html 文档中生成并通过 ftp 传回我的本地系统。

这是我目前的尝试,尽管我确信我在几个地方有不同的目的(因为它主要是在黑暗中的剪切和粘贴/摸索):
set title '#29 Temperature'
set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 7 ps 1.5 # --- blue
set xdata time
set timefmt "%Y/%m/%d:%H:%M:%S"
set ylabel '<Deg C>'
set xrange [2015:2015]
set xlabel '<Time>'
set grid
set term png
set format x "%H/%M"
set output 'TempPlot.png'
plot 'last48.csv' using 1:2

我玩过gnuplot,但没有取得多大成功。我想我对 gnuplot 提供的所有可能性感到不知所措。

协助和建议将不胜感激。如果有一种方法可以编写 gnuplot 脚本来直接查询数据库,那就更好了。

最佳答案

您可以在 gnuplot 脚本中执行命令调用。
(请参阅 gnuplot 中的 help shellhelp commands)。

所以你可以要求你的系统生成输出文件last48.csv从类似于

! sqlite3 -header -csv my_db.db "select * from my_table;" > last48.csv

当然不是 select * , my_table等等等等...您将使用您用来手动生成 csv 文件的命令。

您可能会发现在运行时修复绘图的当前范围很有用(也许对于上面的选择规则)。在 Linux 下,您可以使用以下几行
StartDate="\""."`date --date "2 days ago" +%Y-%m-%d\ %H:%M`"."\""
EndDate="\""."`date +%Y-%m-%d\ %H:%M`"."\""
set xrange [StartDate:EndDate]

笔记:
  • 如果您有一个超过 48 小时的“csv”文件,并且在绘图生成时是例如16:002015-11-12您可以选择 xrange 使用以下命令锐利。

    设置 xrange ['"2015-01-10 16:00"':'"2015-01-12 16:00"']
  • 如果你运行 gnuplot Linux下可以引用man date获得有关如何格式化当前日期的提示
  • gnuplot 的最新版本允许使用运算符 . 连接不同的字符串.例如。如果 A="My ", B="full ", C="string"那么 D=A.B.C 将是“我的完整字符串”。
  • 添加 "里面有几个"..."你必须用斜线来保护它 \所以

    公关 "\""

  • 将打印一个 "

    关于sqlite - 来自日期和时间与温度的sqlite数据库的数据的gnuplot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28006884/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com