On Fri, 6 Feb 2026 at 16:00, David Wright <[email protected]> wrote: > On Fri 06 Feb 2026 at 14:27:26 (+0000), Chris Green wrote: > > David wrote: > > > On Fri, 6 Feb 2026 at 09:40, Chris Green wrote: > > > > Svetlana Tkachenko wrote: > > > > > Arno Lehmann wrote:
> > > > > > have a look at gnuplot. > > > > > +1, gnuplot is easy to use for me. How does it work for you, > > > > > Chris? > > > > The trouble with gnuplot (and many others) is that they are aimed > > > > at plotting functions rather than raw data. > > > > I've looked at the 2D examples at > > > > https://gnuplot.sourceforge.net/demo_6.0/ and none of them show > > > > a simple value (i.e. raw data) versus time plot which is what I'm > > > > after. > > > > I realise that it can be done in gnuplot (running_avg.dem is sort > > > > of some of the way there) but something aimed specifically at time > > > > plots, especially with the ability to squeeze the horizontal (time) > > > > ticks would be much closer to what I'm specifically looking for. > > > Does this do what you want? > > > $ cat values > > > 1 2 > > > 3 3 > > > 4 4 > > > 5 3 > > > 6.5 1.2 > > > > > > $ gnuplot > > > gnuplot> set style line 1 lc rgb '#0060ad' lt 1 lw 1 pt 7 pi -1 ps 1 > > > gnuplot> set pointintervalbox 1.25 > > > gnuplot> plot "values" using 1:2 with lp ls 1 > > > If that does not do what you want, can you explain more clearly what > > > you mean by "squeezing" the x-axis. > > No, it doesn't really address the issue, or at least I don't think it > > does, I may be misunderstanding though. > > I have more X values than will fit across the screen as discrete points. > > So, for a day's results, I have 1440 x values, going from 0 to 1339 > > (minutes in a day). One of the sets of y values will simply be a > > battery voltage, probably in the range 10v to 15v. I want to have a > > plot which shows how the voltage varies over the 24 hours (1440 > > minutes) of the day with, say, the hour of the day shown on the x-axis. > I've not used gnuplot before. Me neither! :) > So I typed: > > $ for j in $(seq 2 .01 10); do printf '%s \n' "$j" >> yseq; done > > and, in an editor, copied it twice more to get 2400 lines, then > > $ for j in $(seq 1 1 2400); do printf '%s \n' "$j" >> xseq; done > $ paste xseq yseq > values > > I then cut and pasted the exact gnuplot lines above, and a graph > popped up on the screen, showing a nice sawtooth waveform of > a "battery" being thrice "charged" and suddenly "discharging". > Isn't that what you want? > I have yet to read man gnuplot and find out what I have actually > done. A cursory glance at it suggests that I'm going to have to find > some doc file to decode all those two-letter abbreviations (I can > guess rgb). You and me both :) I found a similar question [1] on stackoverflow, where the solution seems to be using a gnuplot 'filter' [2], possibly a 'bins' filter [3]. [1] https://stackoverflow.com/questions/22839796/reduce-datapoints-when-using-logscale-in-gnuplot [2] http://www.gnuplot.info/docs/loc8198.html [3] http://www.gnuplot.info/docs/loc8212.html

