使用gnuplot绘制sqlite数据库的图表

6
我有一个SQLite数据库,其中包含以下格式的基本天气信息:
temp1 temp2 pressure humidity
22    23    1024     40
24    25    1027     45
25    26    1020     62
18    15    1019     80

我该如何使用gnuplot绘制这些数据?在绘图之前,我是否需要重新排列数据?


是的,您可以使用gnuplot绘制这些数据。但是,您想让您的图表看起来如何?这些行是不同的日期吗?您自己有没有尝试过? - Christoph
1
你可以像这样从sqlite数据库中提取数据:plot '< sqlite3 myfile.db3 "SELECT temp1, temp2, pressure, humidity FROM myTable;"' using 0:1 title 'temp1', '' using 0:2 title 'temp2'。我不确定确切的语法,但类似这样的代码应该可以工作。 - Christoph
非常感谢!输出目前运行良好且外观不错。如果您不介意,能否告诉我在gnuplot中sqlite3命令的文档在哪里可以找到,因为我找不到它。 - Flatron
1
sqlite3 命令是一个命令行工具,你可以通过 man sqlite3 获取一些信息。 < 告诉 gnuplot 调用 shell 并从该调用生成的输出中读取应绘制的数据。 - Christoph
1
尝试使用smooth cspline,因为它保留了原始值,并仅在点之间进行了一些插值。 - Christoph
显示剩余2条评论
1个回答

13
为了从SQLite数据库中提取数据,您可以使用sqlite3命令行工具来实时提取数据。通过使用<在gnuplot中执行shell命令并将其输出用于绘图。
plot '< sqlite3 myfile.db3 "SELECT temp1, temp2, pressure, humidity FROM myTable;"' using 0:1 title 'temp1', \
     '' using 0:2 title 'temp2'

这将提取每个图形的所有四个字段('' 重复上一个文件名/ shell 命令)。您还可以使用函数来格式化 shell 命令:

SqliteField(f) = '< sqlite3 myfile.db3 "SELECT '.f.' from myTable;"'
fields = 'temp1 temp2 pressure humidity'
plot for [f in fields] SqliteField(f) using 0:1 title f

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接