From: John Hendy <jw.hendy@gmail.com>
To: Nick Parker <nickp@developernotes.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: org-babel and gnuplot
Date: Wed, 8 Sep 2010 14:04:33 -0500 [thread overview]
Message-ID: <AANLkTimVLmR3gvTSK9S5CNVeED+aaTrz7RWvVWEh7To1@mail.gmail.com> (raw)
In-Reply-To: <AANLkTi=hJrkNrTGED5MWJAhJS_uLMLWertU-75yTz1+s@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 6387 bytes --]
Nick,
How about this?? Just fiddled around a little and wonder what you think.
There might be a better way, but essentially, I've done the following:
- Left y-axis = distance
- Right y-axis = time
- I couldn't get the xtic(1) option to work, so I replaced things with what
I've found to work x:y:xticlabels(col#)
- Beefed up the points to make them a little easier to see
- Used your data to "calibrate" your speed
--- The left y-axis is from 9-21min
--- The right y-axis is from 1.5min - 3.5min
--- This means the axes are 'calibrated' to 10mph
What does the "calibration" do? It means that at a quick glance you can see
your speed based on a target rate you set:
- if speed/distance are on top of each other, you're right at your target
- if speed (green) is higher than distance (red), you were faster than your
target
- if speed (green) is lower than distance (red), you were slower than your
target
Resetting your target is as easy as changing (in the code below):
- Time: yrange [y1:y2]
- Distance: y2range [y3:y4]
All you have to do is make sure that y3/y1 = y4/y2 = target speed
Also, remove the references to L/R and Red/Green if you'd like from the
labels. I just tried to make the labels as easy as possible to follow so
that no matter where you looked for a reference you would be forced to see
what color/axis matched what value.
I attached a sample graph. Sorry if I overstepped my bounds -- I realize
it's *your* workout tracker. Take what you like and ditch the rest. I wanted
to know how to do two different y axes anyway so it helped me learn. Code is
here:
------------------- gnuplot code -----------------------
#+tblname: sessions
| Date | ID | Time | Distance |
|-------------+----+-------+----------|
| 9/1/2010 | 1 | 14:00 | 2.4 |
| 9/2/2010 | 2 | 15:13 | 2.5 |
| 9/10/2010 | 3 | 13:45 | 2.3 |
| 9/11 | 4 | 12:20 | 2.0 |
| Spd > 10mph | 5 | 16:35 | 2.8 |
| Spd = 10mph | 6 | 10 | 1.666 |
| Spd < 10mph | 7 | 20 | 2.8 |
#+begin_src gnuplot :var data=sessions :file org-running.png :exports both
reset
set title "Running Stats"
set size ratio square
set xlabel "Date"
set xtics nomirror rotate by -45
set yrange [9:21]
set ylabel "Time (min) -- Red"
set ytics nomirror
set y2range [1.5:3.5]
set y2label "Distance (mi) -- Green"
set y2tics 0,0.5,3.5
set style data points
plot data u 2:3:xticlabels(1) axis x1y1 lw 3 title 'Time (L axis)', \
data u 2:4 axis x2y2 lw 3 title 'Distance (R axis)'
#+end_src
------------------- end gnuplot code ---------------------
Best regards,
John
On Wed, Sep 8, 2010 at 11:52 AM, Nick Parker <nickp@developernotes.com>wrote:
> John,
>
> I am reworking the gnuplot script, it is not done at this point, but this
> is what I currently have:
>
> #+begin_src gnuplot :var data=sessions :file org-running.png :exports both
> set title "Running Stats"
> set xtics nomirror rotate by -45
> set key noenhanced
> set style data linespoints
> plot "$data" using 2:xtic(1) title columnheader(1), \
> for [i=2:3] '' using i title columnheader(i)
> #+end_src
>
> Nick Parker
> www.developernotes.com
>
>
> On Wed, Sep 8, 2010 at 9:39 AM, John Hendy <jw.hendy@gmail.com> wrote:
>
>> Nick,
>>
>>
>> This got me curious to see the output. I tried to generate it on my
>> computer and get this in the *gnuplot* buffer after running the code:
>>
>> -----
>> gnuplot> plot data using 1:2:3 notitle
>> ^
>> warning: Skipping data file with no valid points
>> ^
>> x range is invalid
>> -----
>>
>> This is working for you, though?
>>
>> #+tblname: sessions
>> | Date | Time | Distance |
>> |------------+-------+----------|
>> | 09/02/2010 | 15:13 | 2.5 |
>> | 09/01/2010 | 14:00 | 2.4 |
>>
>> #+begin_src gnuplot :var data=sessions :file org-running.png :exports both
>> set title "Running Stats"
>> set auto x
>> set style data histogram
>> set style fill solid border -1
>> set boxwidth .9
>> set xlabel "Date"
>> set ylabel "Time"
>> plot data using 1:2:3 notitle
>> #+end_src
>>
>>
>> John
>>
>> On Wed, Sep 8, 2010 at 8:10 AM, Nick Parker <nickp@developernotes.com>wrote:
>>
>>> Erik,
>>>
>>> That was the issue, the :file reference needed to be on the line above.
>>> Thanks.
>>>
>>>
>>> Nick Parker
>>> www.developernotes.com
>>>
>>>
>>> On Tue, Sep 7, 2010 at 10:27 PM, Erik Iverson <eriki@ccbr.umn.edu>wrote:
>>>
>>>> On 09/07/2010 10:12 PM, Nick Parker wrote:
>>>>
>>>>> Hi John,
>>>>>
>>>>> I would actually like to plot different lines per distance, each
>>>>> that correlate to a date and elapsed-time (x and y axis respectively).
>>>>> I get an error with the :file notation, though I read that in a sample
>>>>> babel gnuplot example for generating graphs of commit history on the
>>>>> org-mode git repository. I tried to reference the variable data
>>>>> without
>>>>> the quotes and $ sign without any success. I will continue to fiddle
>>>>> with it, I am new to gnuplot.
>>>>>
>>>>
>>>> AFAIK, you can't break source code header argument lines across
>>>> multiple lines. Is that how you actually have it in your
>>>> org file?
>>>>
>>>>
>>>> #+begin_src gnuplot :var data=sessions
>>>>> :file org-running.png :exports both
>>>>> set title "Running Stats"
>>>>> set auto x
>>>>> set style data histogram
>>>>> set style fill solid border -1
>>>>> set boxwidth .9
>>>>> set xlabel "Date"
>>>>> set ylabel "Time"
>>>>> plot "$data" using 1:2:3 notitle
>>>>> #+end_src
>>>>>
>>>>> Nick Parker
>>>>> www.developernotes.com <http://www.developernotes.com>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Emacs-orgmode mailing list
>>>>> Please use `Reply All' to send replies to the list.
>>>>> Emacs-orgmode@gnu.org <mailto:Emacs-orgmode@gnu.org>
>>>>>
>>>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Emacs-orgmode mailing list
>>>>> Please use `Reply All' to send replies to the list.
>>>>> Emacs-orgmode@gnu.org
>>>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>>>
>>>>
>>>>
>>>
>>
>
[-- Attachment #1.2: Type: text/html, Size: 9871 bytes --]
[-- Attachment #2: org-running.png --]
[-- Type: image/png, Size: 6853 bytes --]
[-- Attachment #3: Type: text/plain, Size: 201 bytes --]
_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
next prev parent reply other threads:[~2010-09-08 19:04 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-08 1:29 org-babel and gnuplot Nick Parker
2010-09-08 1:54 ` John Hendy
2010-09-08 3:12 ` Nick Parker
2010-09-08 3:27 ` Erik Iverson
2010-09-08 13:10 ` Nick Parker
2010-09-08 13:38 ` John Hendy
2010-09-08 14:39 ` John Hendy
2010-09-08 16:52 ` Nick Parker
2010-09-08 19:04 ` John Hendy [this message]
2010-09-09 0:20 ` Nick Parker
-- strict thread matches above, loose matches on Subject: below --
2013-06-07 13:25 Carlos Russo
2013-06-07 16:48 ` Eric Schulte
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AANLkTimVLmR3gvTSK9S5CNVeED+aaTrz7RWvVWEh7To1@mail.gmail.com \
--to=jw.hendy@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=nickp@developernotes.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).