Opened 10 years ago

Last modified 5 years ago

#11225 new defect

improve piecewise plotting — at Version 2

Reported by: kcrisman Owned by: jason, was
Priority: major Milestone: sage-7.3
Component: graphics Keywords: piecewise
Cc: wdj, jason, jondo, kcrisman, vbraun, slelievre, mkoeppe, eviatarbach, rws Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by kcrisman)

Until we actually totally rewrite piecewise functions, we should improve some things.

For concreteness, here is one thing that should work but doesn't. I'm sure there are more - add to this list, and then whatever isn't fixed in this ticket can be moved to another ticket. I just want to make sure they're listed in one place, not ten tickets.

List:

  • plotting more than one
    sage: f = Piecewise([[(0,1),x^3], [(1,2),x^2]], x)
    sage: plot([f,x^3],(x,0,2))
    
  • Maybe unify with plot_step_function, which currently is sort of its own thing?
  • In this example:
    sage: zero_func(x)=0
    sage: g = Piecewise([[(-1000,1),zero_func],[(1,1000),(x-1)^3]],x)
    sage: G = g.plot()
    sage: G.show(xmin=-5,xmax=5,ymax=100)
    sage: g(1)
    0
    
    • You can use oo (infinity) for endpoints, but then the plot code for Piecewise gets screwed up.
    • You can try putting in zero instead of defining this new zero function, but then g(1) and g(-1) etc. won't work.
    • You can try using extend_by_zero to make the zero part, but it gives the same problem.
    • You can plot without xmin and xmax, but that gives the whole function.
    • You can plot without ymax, but that gives the range further out than you want.
    • You can try plot(g), but that turns out to uncover a very strange error that may or may not be a bug.

Change History (2)

comment:1 Changed 10 years ago by kcrisman

  • Description modified (diff)

comment:2 Changed 10 years ago by kcrisman

  • Description modified (diff)
Note: See TracTickets for help on using tickets.