I have a couple days worth of pressure and temperature data from several sensors that I would like to analyse by plotting all of the data in one graph. The reason I would like to see all of it is to look for pressure spikes over a long period of time as well as look at the differential pressure from a couple sensors at once. I'm familiar with plotting static graphs with python or languages similar, but I would like to find software that will allow me to zoom in, pan and hover the mouse over the data. Excel can do this somewhat, but since the data points are so close together, it is very imprecise. Does such software exist?
-
What are you using today (Excel?) and why doesn't it work for you?– Thomas WellerAug 8, 2016 at 11:33
-
What format is your data in? What OS? What are you willing to pay? Read meta.softwarerecs.stackexchange.com/questions/336/… and edit your question (and add some whitespace while doing that - it is in your interest that your question is easy to read).– user416Aug 8, 2016 at 11:59
3 Answers
If your data was captured at regular intervals and you can convert it into this format:
{
"Channels" : [
// pressure
{
"Coupling" : 1,
"Samples" : [
1000, 1004, 1007, 1008, 1000, 1008, 1015, 1022, 1030
]
},
// temperature
{
"Coupling" : 1,
"Samples" : [
20, 21, 20, 22, 24, 25, 26, 27, 25
]
},
// humidity
{
"Coupling" : 1,
"Samples" : [
60, 65, 60, 70, 75, 50, 45, 70, 85
]
}
],
"Timestamp" : "2015-11-30 00:44:45.653",
"TriggerMode" : 3,
"TriggerSource" : 0,
"TriggerType" : 1,
"fDivX" : 1 // second
}
(basically filling "Samples" for each channel in this JSON and replacing fDivX with interval value) you can load this into miniscope v4:
Note that because temperature and pressure have very different values each channel is zoomed separately (Y-axis and cursors are valid only for active channel selected on the right, humidity above).
For python you can do this with matplotlib, bokeh or plot.ly
Matplotlib example at different zoom levels:
Bokeh zoom-able example: http://bokeh.pydata.org/en/latest/docs/gallery/legend.html
For plot.ly you will need an account.
As steve suggested, matplotlib can do the trick.
There's a non free solution too (free with a student license) that is Matlab, from which matplotlib tries to recreate. Its easy to use and takes barely a few seconds from getting data to plotting it.
Octave is the free (less stable) equivalent of matlab in linux