|
From: James R. V. Z. <jr...@co...> - 2009-02-18 17:36:21
|
Ethan A Merritt <merritt@u.washington.edu> writes: >Why does your data file have two blank lines between each set of points? > >If you reduce that to a single blank line then there is no segfault. >Of course, it should not segfault in any case, but I'm wondering if >this is why no one has reported the problem before. I used two blank lines so I could use "index" specs to select portions of the data file for plotting, or more usefully, for fitting. From: Daniel J Sebald <dan...@ie...> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Ethan A Merritt <merritt@u.washington.edu> CC: gnu...@li..., "James R. Van Zandt" <jr...@co...> Subject: Re: segfault in plot3d References: <E1L...@va...> <200902172152.08953.merritt@u.washington.edu> In-Reply-To: <200902172152.08953.merritt@u.washington.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - deneb.hostpapa.com X-AntiAbuse: Original Domain - comcast.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - ieee.org X-Source: X-Source-Args: X-Source-Dir: Ethan A Merritt wrote: >>gnuplot> splot 'lin2.dat',x+y > > > Why does your data file have two blank lines between each set of points? > > If you reduce that to a single blank line then there is no segfault. > Of course, it should not segfault in any case, but I'm wondering if > this is why no one has reported the problem before. Daniel J Sebald <dan...@ie...> wrote: > That explains it. The double line break means to start another 3D > curve. (A single break means to start another trace of the 3D curve.) > So Jim's example is attempting a 3D plot with single dimensioned data. I don't follow what you mean by "single dimensioned data". Each point has an X, Y, and Z value. With "set style data lines", the points are connected along only one dimension, which is fine with me. Actually I was using the default style, so I got only the points. > Either a check should be put in plot3d.c, or a datafile [like this] > should be disallowed... I see no reason to disallow it. It used to work. And it still works unless you plot data after a function. (Succeeds by accident?) The docs say "If all datablocks contain the same number of points, gnuplot will draw cross-isolines between datablocks, connecting corresponding points." Apparently gnuplot should check that there is more than one datablock before attempting to draw cross-isolines. - Jim Van Zandt |
|
From: Ethan M. <merritt@u.washington.edu> - 2009-02-18 19:14:19
|
On Wednesday 18 February 2009 09:36:12 James R. Van Zandt wrote: > > Ethan A Merritt <merritt@u.washington.edu> writes: > >Why does your data file have two blank lines between each set of points? > > > >If you reduce that to a single blank line then there is no segfault. > >Of course, it should not segfault in any case, but I'm wondering if > >this is why no one has reported the problem before. > > I used two blank lines so I could use "index" specs to select portions > of the data file for plotting, or more usefully, for fitting. That's fine. I was just wondering if there was a quick work-around available. I have figured out why the iteration tracking is interfering with the multiple-data-sets-per-file case, but still have to think about how best to fix it. > > From: Daniel J Sebald <dan...@ie...> > User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020 > X-Accept-Language: en-us, en > MIME-Version: 1.0 > To: Ethan A Merritt <merritt@u.washington.edu> > CC: gnu...@li..., > "James R. Van Zandt" <jr...@co...> > Subject: Re: segfault in plot3d > References: <E1L...@va...> <200902172152.08953.merritt@u.washington.edu> > In-Reply-To: <200902172152.08953.merritt@u.washington.edu> > Content-Type: text/plain; charset=us-ascii; format=flowed > Content-Transfer-Encoding: 7bit > X-AntiAbuse: This header was added to track abuse, please include it with any abuse report > X-AntiAbuse: Primary Hostname - deneb.hostpapa.com > X-AntiAbuse: Original Domain - comcast.net > X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] > X-AntiAbuse: Sender Address Domain - ieee.org > X-Source: > X-Source-Args: > X-Source-Dir: > > Ethan A Merritt wrote: > > >>gnuplot> splot 'lin2.dat',x+y > > > > > > Why does your data file have two blank lines between each set of points? > > > > If you reduce that to a single blank line then there is no segfault. > > Of course, it should not segfault in any case, but I'm wondering if > > this is why no one has reported the problem before. > > Daniel J Sebald <dan...@ie...> wrote: > > That explains it. The double line break means to start another 3D > > curve. (A single break means to start another trace of the 3D curve.) > > So Jim's example is attempting a 3D plot with single dimensioned data. > > I don't follow what you mean by "single dimensioned data". Each point > has an X, Y, and Z value. With "set style data lines", the points are > connected along only one dimension, which is fine with me. Actually I > was using the default style, so I got only the points. > > > Either a check should be put in plot3d.c, or a datafile [like this] > > should be disallowed... > > I see no reason to disallow it. It used to work. And it still works > unless you plot data after a function. (Succeeds by accident?) > > The docs say > > "If all datablocks contain the same number of points, gnuplot will > draw cross-isolines between datablocks, connecting corresponding > points." > > Apparently gnuplot should check that there is more than one datablock > before attempting to draw cross-isolines. > > - Jim Van Zandt > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > gnuplot-beta mailing list > gnu...@li... > https://lists.sourceforge.net/lists/listinfo/gnuplot-beta > -- Ethan A Merritt Biomolecular Structure Center University of Washington, Seattle 98195-7742 |
|
From: Daniel J S. <dan...@ie...> - 2009-02-19 04:04:24
|
James R. Van Zandt wrote: > Daniel J Sebald <dan...@ie...> wrote: > >>That explains it. The double line break means to start another 3D >>curve. (A single break means to start another trace of the 3D curve.) >>So Jim's example is attempting a 3D plot with single dimensioned data. > > > I don't follow what you mean by "single dimensioned data". Each point > has an X, Y, and Z value. With "set style data lines", the points are > connected along only one dimension, which is fine with me. Actually I > was using the default style, so I got only the points. > > >>Either a check should be put in plot3d.c, or a datafile [like this] >>should be disallowed... > > > I see no reason to disallow it. It used to work. And it still works > unless you plot data after a function. (Succeeds by accident?) Good chance, would be my guess. Someone disallowed the number of samples in a dimension to be 1. > The docs say > > "If all datablocks contain the same number of points, gnuplot will > draw cross-isolines between datablocks, connecting corresponding > points." > > Apparently gnuplot should check that there is more than one datablock > before attempting to draw cross-isolines. Yes. Philosophically, I'm not opposed to having a single line of data appear in a 3D plot. It's probably the case that 3D plotting functions expect (i.e., assume, or, were never tested) there to be some type of grid. Dan |
|
From: Ethan A M. <merritt@u.washington.edu> - 2009-02-19 04:17:56
|
On Wednesday 18 February 2009, Daniel J Sebald wrote: > James R. Van Zandt wrote: > > > Daniel J Sebald <dan...@ie...> wrote: > > > >>That explains it. The double line break means to start another 3D > >>curve. (A single break means to start another trace of the 3D curve.) > >>So Jim's example is attempting a 3D plot with single dimensioned data. > > > > > > I don't follow what you mean by "single dimensioned data". Each point > > has an X, Y, and Z value. With "set style data lines", the points are > > connected along only one dimension, which is fine with me. Actually I > > was using the default style, so I got only the points. > > > > > >>Either a check should be put in plot3d.c, or a datafile [like this] > >>should be disallowed... > > > > > > I see no reason to disallow it. It used to work. And it still works > > unless you plot data after a function. (Succeeds by accident?) > > Good chance, would be my guess. Someone disallowed the number of samples in a dimension to be 1. > > > > The docs say > > > > "If all datablocks contain the same number of points, gnuplot will > > draw cross-isolines between datablocks, connecting corresponding > > points." > > > > Apparently gnuplot should check that there is more than one datablock > > before attempting to draw cross-isolines. > > Yes. > > Philosophically, I'm not opposed to having a single line of data appear in a 3D plot. It's probably the case that 3D plotting functions expect (i.e., assume, or, were never tested) there to be some type of grid. > You're over-thinking this. There is nothing to stop you from plotting a series of points in 3D that have nothing to do with a surface. The problem data file happens to contain 4 sets of such points. If you split it into four separate files, it works as expected splot 'line1', 'line2', 'line3', 'line4', x+y What has gone wrong (I eventually realized) is that the code added for iteration assumes that if you generated multiple curves from the same input file it is _because of iteration_, whereas in this case it is simply because the input file contains more than one curve. I will fix that. -- Ethan A Merritt |