emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: JBash <bashveank@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: org-plot questions
Date: Wed, 22 Oct 2008 08:35:25 -0700	[thread overview]
Message-ID: <874p34r6bm.fsf@gmail.com> (raw)
In-Reply-To: <407c66ac0810220727qd861245p47bbece859899da9@mail.gmail.com> (JBash's message of "Wed, 22 Oct 2008 10:27:30 -0400")

JBash <bashveank@gmail.com> writes:

> Hi,
>
> First of all, thanks to all for the work on org-mode and org-plot.
>
> A question about org-plot...
>
> Question 1:
> When I include an index column in the first column of the table,  I am getting evenly spaced data points,
> with the xtic labels being coming from the 'ind:' column (2, in the first data set here).
>
> The behavior I expected was to use the second column (Frequency) as the independent variable, and to get a
> plot with 3 groups of 3 points, near frequencies of 1, 10, and 20. as I get with the 'Data Set B' group.
>
> Is this expected and correct?
>

Hi Jerry,

Not exactly expected, but I believe it is the correct behavior for now.
Notice that you are missing an hline in your table after the headers.
Without an obvious division between the headers, and the table data
org-plot can not tell that the data is numeric, and should be
interpreted as such, so it applies the values of the index column as
xlabels to evenly spaced points (as if they were strings).  Try the
following table, and you should get a result more inline with
expectations.

#+PLOT: ind:2 with:points
| Index | Frequency | Amplitude | Phase | Delta | Peak |
|-------+-----------+-----------+-------+-------+------|
|     1 |       0.9 |         9 |     6 |     5 |  198 |
|     2 |       1.0 |        10 |     9 |     7 |  212 |
|     3 |       1.1 |        11 |     8 |     3 |  144 |
|     4 |       9.9 |        19 |    12 |     9 |  235 |
|     5 |      10.0 |        18 |     7 |    12 |  222 |
|     6 |      10.1 |        22 |    14 |     4 |  187 |
|     7 |      19.9 |        14 |    11 |     6 |  220 |
|     8 |      20.0 |        20 |    15 |    14 |  213 |
|     9 |      20.1 |        18 |    16 |    11 |  201 |

>
> I know that this will also include the first column in the plot, which leads to my next question.
>
> Question 2:
> When I try to use the deps option, I either get an error or an undesired result.  For example, if I include
> a "deps:3,4", I get a "Wrong type argument" error.  If I enclose the 3,4 in single quotes (eg. deps:'3,4'),
> I get only the third column plotted, and not both third and fourth as I expected.  What am I doing wrong?
> A comment - enclosing the argument for deps in single quotes, if that is the intention, seems inconsistent
> with the arguments for other options of that type (ind, for example).
>

Sorry, the documentation is wrong and it specifies that the dependent
columns should be specified as a comma separated list, when in actuality
they should be specified as a standard lisp list "inside parenthesis
separated by spaces".  Thanks for catching this, I will submit a patch
to the documentation.

#+PLOT: ind:1 deps:(3 4)
| Frequency | Amplitude | Phase | Delta | Peak |
|-----------+-----------+-------+-------+------|
|       0.9 |         9 |     6 |     5 |  198 |
|       1.0 |        10 |     9 |     7 |  212 |
|       1.1 |        11 |     8 |     3 |  144 |
|       9.9 |        19 |    12 |     9 |  235 |
|      10.0 |        18 |     7 |    12 |  222 |
|      10.1 |        22 |    14 |     4 |  187 |
|      19.9 |        14 |    11 |     6 |  220 |
|      20.0 |        20 |    15 |    14 |  213 |
|      20.1 |        18 |    16 |    11 |  201 |

>
> Question 3:
> Is there a way to produce 2 different plots from the same table data?
>

Currently no there is not.  In the current setup all of the plot lines
adjacent to a table are collected and used to generate a single plot for
the table.  I does seem like a good idea to allow multiple plots from a
single table.  Two ideas that come to mind are...

1) keep all of the plot lines adjacent with the table, but number them
   into any number of different plots.  For example the following would
   specify plots 1 and 2 for a table

#+PLOT1: title:"the first plot"
#+PLOT1: ind:1 with:points
#+PLOT2: title:"the second plot on the same table"
#+PLOT2: ind:2 deps:(3 4) with:lines
| Frequency | Amplitude | Phase | Delta | Peak |
|-----------+-----------+-------+-------+------|
|       0.9 |         9 |     6 |     5 |  198 |
|       1.0 |        10 |     9 |     7 |  212 |
|       1.1 |        11 |     8 |     3 |  144 |
|       9.9 |        19 |    12 |     9 |  235 |
|      10.0 |        18 |     7 |    12 |  222 |
|      10.1 |        22 |    14 |     4 |  187 |
|      19.9 |        14 |    11 |     6 |  220 |
|      20.0 |        20 |    15 |    14 |  213 |
|      20.1 |        18 |    16 |    11 |  201 |

2) the only other mechanism which occurs to me is to somehow label the
   table with a unique ID, and then allow the plot lines to be located
   anywhere in the org-mode file and include the table ID as a new
   argument to the PLOT lines.  This approach seems more flexible if
   more complicated.

Thanks for the bug reports and ideas -- Eric

>
> Thanks again for the help.
> Jerry
>
> ** Data Set A
> #+PLOT: ind:2
> | Index | Frequency |  Amplitude | Phase | Delta | Peak |
> |     1 |       0.9 |          9 |     6 |     5 |  198 |
> |     2 |       1.0 |         10 |     9 |     7 |  212 |
> |     3 |       1.1 |         11 |     8 |     3 |  144 |
> |     4 |       9.9 |         19 |    12 |     9 |  235 |
> |     5 |      10.0 |         18 |     7 |    12 |  222 |
> |     6 |      10.1 |         22 |    14 |     4 |  187 |
> |     7 |      19.9 |         14 |    11 |     6 |  220 |
> |     8 |      20.0 |         20 |    15 |    14 |  213 |
> |     9 |      20.1 |         18 |    16 |    11 |  201 |
>
> ** Data Set B
> #+PLOT: ind:1
> | Frequency | Amplitude | Phase | Delta | Peak |
> |-----------+-----------+-------+-------+------|
> |       0.9 |         9 |     6 |     5 |  198 |
> |       1.0 |        10 |     9 |     7 |  212 |
> |       1.1 |        11 |     8 |     3 |  144 |
> |       9.9 |        19 |    12 |     9 |  235 |
> |      10.0 |        18 |     7 |    12 |  222 |
> |      10.1 |        22 |    14 |     4 |  187 |
> |      19.9 |        14 |    11 |     6 |  220 |
> |      20.0 |        20 |    15 |    14 |  213 |
> |      20.1 |        18 |    16 |    11 |  201 |
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2008-10-22 15:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-22 14:27 org-plot questions JBash
2008-10-22 15:35 ` Eric Schulte [this message]
2008-10-22 17:39   ` JBash
2008-10-22 22:43     ` Eric Schulte
2008-10-23  1:14       ` Samuel Wales

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=874p34r6bm.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=bashveank@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).