Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.graphics.apps.gnuplot > #4474
| From | Jörg Buchholz <bookwood4new@freenet.de> |
|---|---|
| Newsgroups | comp.graphics.apps.gnuplot |
| Subject | Re: Filtering and summation of data |
| Date | 2022-05-23 13:36 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <t6frjn$u71$1@dont-email.me> (permalink) |
| References | <369741b2-ffe2-4739-a4a5-164b295f8e97n@googlegroups.com> |
On 19.05.2022 20:15, thomas.lehm...@googlemail.com wrote:
> Hi,
>
> considering data in a table where value are categorized.
> I would like to be able a) to filter data for a plot by category
> and b) I would like to sum up all values with same category
> being able to display it in a plot with box.
>
> Important: the solution should be platform independent;
> as an example "awk" or "sed" is not available on all platforms.
> Yes python would be possible but I really would prefer the
> pure Gnuplot solution if possible.
>
> Kind Regards,
> Thomas
>
> Appendix:
>
> What I. have sofar:
>
> <code>
> set terminal pngcairo size 1400,1000 enhanced font ",20"
> set output "DemoSum.png"
>
> $DemoData << EOD
> Timestamp, Category, Value
> 2022-05-19 05:55:00, test1, 5
> 2022-05-19 09:16:00, test2, 15
> 2022-05-19 13:56:00, test3, 10
> 2022-05-20 05:15:00, test1, 20
> 2022-05-20 10:58:00, test2, 5
> 2022-05-20 17:20:00, test3, 25
> EOD
>
> set datafile separator ","
> set key autotitle columnhead
>
> # a very simple plot functionality
> set multiplot layout 2, 1 title "Timestamps And Sums"
>
> # define line style(s)
> set style line 1 lc rgb 'grey30' ps 0 lt 1 lw 2
> set style line 2 lc rgb 'grey70' lt 1 lw 2
> set style fill solid 1.0 border rgb 'grey30'
>
> set timefmt "%Y-%m-%d %H:%M:%S"
> set xdata time
> set grid
>
> set title "Data based on date and time"
> plot $DemoData using 1:3 with linespoint linestyle 1
>
> unset xdata
> set title "Data based on categories"
> plot $DemoData using 3:xtic(2) with boxes linestyle 1
> </code>
Do you mean the second graph like this?
<code>
set terminal pngcairo size 1400,1000 enhanced font ",20"
set output "DemoSum.png"
$DemoData << EOD
Timestamp, Category, Value
2022-05-19 05:55:00, test1, 5
2022-05-19 09:16:00, test2, 15
2022-05-19 13:56:00, test3, 10
2022-05-20 05:15:00, test1, 20
2022-05-20 10:58:00, test2, 5
2022-05-20 17:20:00, test3, 25
EOD
set datafile separator ","
set key autotitle columnhead
# a very simple plot functionality
set multiplot layout 2, 1 title "Timestamps And Sums"
# define line style(s)
set style line 1 lc rgb 'grey30' ps 0 lt 1 lw 2
set style line 2 lc rgb 'grey70' lt 1 lw 2
set style fill solid 1.0 border rgb 'grey30'
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set grid
set title "Data based on date and time"
plot $DemoData using 1:3 with linespoint linestyle 1
unset xdata
set title "Data based on categories"
stats $DemoData u(strcol(2) eq "test1" ? $3:1/0)
sum_test1 = STATS_sum
stats $DemoData u(strcol(2) eq "test2" ? $3:1/0)
sum_test2 = STATS_sum
stats $DemoData u(strcol(2) eq "test3" ? $3:1/0)
sum_test3 = STATS_sum
set xtics in ('test1' 1, 'test2' 2, 'test3' 3)
set boxwidth 1 absolute
set yrange [0:*]
set xrange [0:4]
plot '+' u (1):(sum_test1) w boxes, '+' u (2):(sum_test2) w boxes, '+'
u (3):(sum_test3) w boxes
unset multiplot
set out
reset
</code>
Back to comp.graphics.apps.gnuplot | Previous | Next — Previous in thread | Find similar
Filtering and summation of data "thomas.lehm...@googlemail.com" <thomas.lehmann.private@googlemail.com> - 2022-05-19 11:15 -0700 Re: Filtering and summation of data Jörg Buchholz <bookwood4new@freenet.de> - 2022-05-23 07:22 +0200 Re: Filtering and summation of data Jörg Buchholz <bookwood4new@freenet.de> - 2022-05-23 13:36 +0200
csiph-web