patch(...) swallows tick marks

View: New views
6 Messages — Rating Filter:   Alert me  

patch(...) swallows tick marks

by Matthias Brennwald (bwm) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear all

If I plot a patch that extends to the axes of a plot, the tick marks get
covered by the patch. A simple example to illustrate this effect is:

------------------
clf
patch ([5.5 10 10 5.5],[1 1 10 10],'r'); hold on
plot(1:10)
------------------

Is there a way to make the tick marks visible again?

(I have Octave 2.9.18 with gnuplot 4.2)

Matthias

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www.cae.wisc.edu/mailman/listinfo/help-octave

Re: patch(...) swallows tick marks

by kahacjde :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Matthias Brennwald (bwm) wrote:
Dear all

If I plot a patch that extends to the axes of a plot, the tick marks get
covered by the patch. A simple example to illustrate this effect is:

------------------
clf
patch ([5.5 10 10 5.5],[1 1 10 10],'r'); hold on
plot(1:10)
------------------

Is there a way to make the tick marks visible again?

(I have Octave 2.9.18 with gnuplot 4.2)

Matthias
Hello,

with matlab I see the same behavior - the patch is plotted above the grid and tick marks.

Kai

Re: patch(...) swallows tick marks

by Michael Goffioul-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 12/12/07, kahacjde <kai.habel@...> wrote:

>
>
> Matthias Brennwald (bwm) wrote:
> >
> > Dear all
> >
> > If I plot a patch that extends to the axes of a plot, the tick marks get
> > covered by the patch. A simple example to illustrate this effect is:
> >
> > ------------------
> > clf
> > patch ([5.5 10 10 5.5],[1 1 10 10],'r'); hold on
> > plot(1:10)
> > ------------------
> >
> > Is there a way to make the tick marks visible again?
> >
> > (I have Octave 2.9.18 with gnuplot 4.2)
> >
> > Matthias
> >
>
> Hello,
>
> with matlab I see the same behavior - the patch is plotted above the grid
> and tick marks.

In Matlab, you would do a

set(gca, 'Layer', 'top')

to see the tick marks again (only in 2D mode). This is supported in JHandles
plot backend.

Michael.
_______________________________________________
Help-octave mailing list
Help-octave@...
https://www.cae.wisc.edu/mailman/listinfo/help-octave

Re: patch(...) swallows tick marks

by dbateman3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Michael Goffioul wrote:

> On 12/12/07, kahacjde <kai.habel@...> wrote:
>>
>> Matthias Brennwald (bwm) wrote:
>>> Dear all
>>>
>>> If I plot a patch that extends to the axes of a plot, the tick marks get
>>> covered by the patch. A simple example to illustrate this effect is:
>>>
>>> ------------------
>>> clf
>>> patch ([5.5 10 10 5.5],[1 1 10 10],'r'); hold on
>>> plot(1:10)
>>> ------------------
>>>
>>> Is there a way to make the tick marks visible again?
>>>
>>> (I have Octave 2.9.18 with gnuplot 4.2)
>>>
>>> Matthias
>>>
>> Hello,
>>
>> with matlab I see the same behavior - the patch is plotted above the grid
>> and tick marks.
>
> In Matlab, you would do a
>
> set(gca, 'Layer', 'top')
>
> to see the tick marks again (only in 2D mode). This is supported in JHandles
> plot backend.


This is why I only wish you were working on the Octave core objects
classes, with the data transfer to java layered on top... You know more
about how the graphics handles are supposed to work than anyone on the
Octave lists.

D.
_______________________________________________
Help-octave mailing list
Help-octave@...
https://www.cae.wisc.edu/mailman/listinfo/help-octave

Re: patch(...) swallows tick marks

by John W. Eaton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 12-Dec-2007, Michael Goffioul wrote:

| On 12/12/07, kahacjde <kai.habel@...> wrote:
| >
| >
| > Matthias Brennwald (bwm) wrote:
| > >
| > > Dear all
| > >
| > > If I plot a patch that extends to the axes of a plot, the tick marks get
| > > covered by the patch. A simple example to illustrate this effect is:
| > >
| > > ------------------
| > > clf
| > > patch ([5.5 10 10 5.5],[1 1 10 10],'r'); hold on
| > > plot(1:10)
| > > ------------------
| > >
| > > Is there a way to make the tick marks visible again?
| > >
| > > (I have Octave 2.9.18 with gnuplot 4.2)
| > >
| > > Matthias
| > >
| >
| > Hello,
| >
| > with matlab I see the same behavior - the patch is plotted above the grid
| > and tick marks.
|
| In Matlab, you would do a
|
| set(gca, 'Layer', 'top')
|
| to see the tick marks again (only in 2D mode). This is supported in JHandles
| plot backend.

I made the following change.

Thanks,

jwe



scripts/ChangeLog:

2007-12-12  John W. Eaton  <jwe@...>

        * plot/__go_draw_axes__.m: Handle the axes layer property.


src/ChangeLog:

2007-12-12  John W. Eaton  <jwe@...>

        * graphics.h.in (class axes) Add the layer property.
        * graphics.cc (class axes) Ditto.


Index: scripts/plot/__go_draw_axes__.m
===================================================================
RCS file: /cvs/octave/scripts/plot/__go_draw_axes__.m,v
retrieving revision 1.92
diff -u -u -r1.92 __go_draw_axes__.m
--- scripts/plot/__go_draw_axes__.m 11 Dec 2007 21:25:53 -0000 1.92
+++ scripts/plot/__go_draw_axes__.m 12 Dec 2007 18:43:39 -0000
@@ -241,9 +241,13 @@
       fputs (plot_stream, "set grid nomztics;\n");
     endif
 
-    ## Unless we force the grid to the front, tics may appear below
-    ## plotted objects.
-    fputs (plot_stream, "set grid front;\n");
+    ## The grid front/back/layerdefault option also controls the
+    ## appearance of tics, so it is used even if the grid is absent.
+    if (strcmpi (axis_obj.layer, "top"))
+      fputs (plot_stream, "set grid front;\n");
+    else
+      fputs (plot_stream, "set grid layerdefault;\n");
+    endif
     if (! have_grid)
       fputs (plot_stream, "unset grid;\n");
     endif
Index: src/graphics.cc
===================================================================
RCS file: /cvs/octave/src/graphics.cc,v
retrieving revision 1.64
diff -u -u -r1.64 graphics.cc
--- src/graphics.cc 12 Dec 2007 16:41:09 -0000 1.64
+++ src/graphics.cc 12 Dec 2007 18:43:42 -0000
@@ -1098,6 +1098,7 @@
     colororder (default_colororder ()),
     dataaspectratio (Matrix (1, 3, 1.0)),
     dataaspectratiomode ("auto"),
+    layer (radio_values ("{bottom}|top")),
     xlim (),
     ylim (),
     zlim (),
@@ -1263,6 +1264,8 @@
     set_dataaspectratio (val);
   else if (name.compare ("dataaspectratiomode"))
     set_dataaspectratiomode (val);
+  else if (name.compare ("layer"))
+    set_layer (val);
   else if (name.compare ("xlim"))
     set_xlim (val);
   else if (name.compare ("ylim"))
@@ -1380,6 +1383,7 @@
   colororder = default_colororder ();
   dataaspectratio = Matrix (1, 3, 1.0);
   dataaspectratiomode = "auto";
+  layer = radio_property (radio_values ("{bottom}|top"));
 
   Matrix tlim (1, 2, 0.0);
   tlim(1) = 1;
@@ -1512,6 +1516,7 @@
   m.assign ("colororder", colororder);
   m.assign ("dataaspectratio", dataaspectratio);
   m.assign ("dataaspectratiomode", dataaspectratiomode);
+  m.assign ("layer", layer);
   m.assign ("xlim", xlim);
   m.assign ("ylim", ylim);
   m.assign ("zlim", zlim);
@@ -1596,6 +1601,8 @@
     retval = dataaspectratio;
   else if (name.compare ("dataaspectratiomode"))
     retval = dataaspectratiomode;
+  else if (name.compare ("layer"))
+    retval = layer;
   else if (name.compare ("xlim"))
     retval = xlim;
   else if (name.compare ("ylim"))
@@ -1736,6 +1743,7 @@
   m["colororder"] = default_colororder ();
   m["dataaspectratio"] = Matrix (1, 3, 1.0);
   m["dataaspectratiomode"] = "auto";
+  m["layer"] = radio_property (radio_values ("{bottom}|top"));
 
   Matrix tlim (1, 2, 0.0);
   tlim(1) = 1;
Index: src/graphics.h.in
===================================================================
RCS file: /cvs/octave/src/graphics.h.in,v
retrieving revision 1.27
diff -u -u -r1.27 graphics.h.in
--- src/graphics.h.in 11 Dec 2007 16:52:56 -0000 1.27
+++ src/graphics.h.in 12 Dec 2007 18:43:42 -0000
@@ -1360,6 +1360,7 @@
       octave_value colororder
       octave_value dataaspectratio m
       octave_value dataaspectratiomode
+      radio_property layer a
       octave_value xlim m
       octave_value ylim m
       octave_value zlim m

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www.cae.wisc.edu/mailman/listinfo/help-octave

Parent Message unknown Re: patch(...) swallows tick marks

by Matthias Brennwald (bwm) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, 2007-12-13 at 12:03 -0600, help-octave-request@... wrote:

> | On 12/12/07, kahacjde <kai.habel@...> wrote:
> | >
> | >
> | > Matthias Brennwald (bwm) wrote:
> | > >
> | > > Dear all
> | > >
> | > > If I plot a patch that extends to the axes of a plot, the tick
> marks get
> | > > covered by the patch. A simple example to illustrate this effect
> is:
> | > >
> | > > ------------------
> | > > clf
> | > > patch ([5.5 10 10 5.5],[1 1 10 10],'r'); hold on
> | > > plot(1:10)
> | > > ------------------
> | > >
> | > > Is there a way to make the tick marks visible again?
> | > >
> | > > (I have Octave 2.9.18 with gnuplot 4.2)
> | > >
> | > > Matthias
> | > >
> | >
> | > Hello,
> | >
> | > with matlab I see the same behavior - the patch is plotted above
> the grid
> | > and tick marks.
> |
> | In Matlab, you would do a
> |
> | set(gca, 'Layer', 'top')
> |
> | to see the tick marks again (only in 2D mode). This is supported in
> JHandles
> | plot backend.
>
> I made the following change.
>
> Thanks,
>
> jwe

Great! Thanks for this! However, I don't know how to apply the patch. I
can't download the current version from CVS, either (the port seems to
be blocked in our company network). I therefore downloaded the tar.gz
archive of Octave 2.9.19 via FTP and the patchfile ("layerpatch.ksh")
and then tried to apply the patch. However, I have never patched
anything before, and I can't make this work. Here's what I tried:

********************************************************
bwm@blux:~$ cd ~/Desktop
bwm@blux:~/Desktop$ cp layerpatch.ksh octave-2.9.19
bwm@blux:~/Desktop$ cd octave-2.9.19/
bwm@blux:~/Desktop/octave-2.9.19$ patch < layerpatch.ksh
can't find file to patch at input line 23
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|scripts/ChangeLog:
|
|2007-12-12  John W. Eaton  <jwe@...>
|
|       * plot/__go_draw_axes__.m: Handle the axes layer property.
|
|
|src/ChangeLog:
|
|2007-12-12  John W. Eaton  <jwe@...>
|
|       * graphics.h.in (class axes) Add the layer property.
|       * graphics.cc (class axes) Ditto.
|
|
|Index: scripts/plot/__go_draw_axes__.m
|===================================================================
|RCS file: /cvs/octave/scripts/plot/__go_draw_axes__.m,v
|retrieving revision 1.92
|diff -u -u -r1.92 __go_draw_axes__.m
|--- scripts/plot/__go_draw_axes__.m    11 Dec 2007 21:25:53 -0000
1.92
|+++ scripts/plot/__go_draw_axes__.m    12 Dec 2007 18:43:39 -0000
--------------------------
File to patch:
********************************************************


I thought the patchfile contains the information about which files need
to be patched, right? What am I doing wrong?

Matthias

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www.cae.wisc.edu/mailman/listinfo/help-octave