|
From: Greg W. <gr...@th...> - 2004-04-07 11:42:26
|
I assume that's a typo and is supposed to be "f(x)=-5 for [15,18]. Is
this what you want?
plot([0,5,5,15,15,18],
[1,1,9, 9,-5,-5])
On Wed, 2004-04-07 at 05:12, Vincent BOYER wrote:
> Hi everybody.
>
> Related to this discussion, here is something else that could be very
> useful for me :
>
> Let's say
>
> t =[0,5,15,18]
> s = [1,9,-5]
>
> I'd like to plot a curve f(x) using s and t in a way that :
> - f(x)=1 for x in [0,5]
> - f(x)=9 for x in [5,15]
> - f(x)=-51 for x in [5,18]
>
> Is there already a simple way to do that using Matplotlib, and if not, would it be possible to add it?
>
> Thanx
> Vincent
>
>
>
> John Hunter wrote:
>
> >>>>>>"Peter" == Peter Groszkowski <pgr...@ge...> writes:
> >>>>>>
> >
> > Peter> Hi everyone: I was wondering whether it is possible to tell
> > Peter> matplotlib how/when to connect data points. Consider this
> > Peter> simple script:
> >
> > Peter> from matplotlib.matlab import * figure(1) t =
> > Peter> [0,1,2,3,4,5,105,106,107] s = [1,4,5,3,9,11,-5,-8,3]
> > Peter> plot(t, s, antialiased=False) grid(True) show()
> >
> >
> > Peter> There are no data points between t=5 and t=105. By default
> > Peter> the points (5,11) and (105,-5) are connected, but I would
> > Peter> like to tell matplotlib NOT to do so. In my case I would
> > Peter> like to pass the plot function a variable telling it what
> > Peter> to do. So for example would have:
> >
> > Peter> plot(t, s, max_delta=40)
> >
> > Peter> This would mean that the points are only to be connected if
> > Peter> the difference between the adjacent t values is less than
> > Peter> 40. In my case this is relevant because sometimes there
> > Peter> are "holes" in my data, and connecting the points makes the
> > Peter> plots look very messy.
> >
> > Peter> Would anyone find something like this useful? Would it be
> > Peter> difficult to implement?
> >
> >Certainly not difficult, and probably useful enough to put in the
> >standard distro. Eg, in a stock market trading example, you would
> >have lots of quotes, minute by minute, punctuated by long intervals
> >overnight where the market is closed. If you set maxdelta
> >appropriately, you could draw connected lines only within trading
> >days.
> >
> >Here is a sample implementation
> >
> >from matplotlib.matlab import *
> >def segplot(x, y, fmt, maxdelta, **kwargs):
> > """
> > Plot x versus y, breaking the plot at any point where x[i] -
> > x[i-1] > maxdelta. kwargs are passed on to plot
> > """
> > x = asarray(x)
> > y = asarray(y)
> > d = diff(x)
> > lines = []
> > ind = nonzero(greater(d, maxdelta))
> > ind = ind+1
> > if not len(ind):
> > lines.extend( plot(x,y,fmt,**kwargs) )
> > else:
> > allind = [0]
> > allind.extend(ind)
> > allind.append(len(x))
> > for i1,i2 in zip(allind[:-1], allind[1:]):
> > lines.extend( plot(x[i1:i2], y[i1:i2], fmt, **kwargs) )
> > return lines
> >
> >t = [0,1,2,3,4,5,105,106,107,187, 200, 212, 300, 320]
> >s = [1,4,5,3,9,11,-5,-8,3,12, 15, 12, -1, 3]
> >segplot(t, s, 'b-o', 40, antialiased=False)
> >grid(True)
> >show()
> >
> >I'm inclined not to make this part of plot, since plot processes a
> >variable number of arguments it makes it a little difficult.
> >Certainly doable, but I'm hesitant to put too much on plot because it
> >might become unwieldy. But a new function, like segment plot, would
> >be easy enough to include.
> >
> >Any suggestions for a name, or additional functionality?
> >
> >JDH
> >
> >
> >-------------------------------------------------------
> >This SF.Net email is sponsored by: IBM Linux Tutorials
> >Free Linux tutorial presented by Daniel Robbins, President and CEO of
> >GenToo technologies. Learn everything from fundamentals to system
> >administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
> >_______________________________________________
> >Matplotlib-users mailing list
> >Mat...@li...
> >https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> >
> >
>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of
> GenToo technologies. Learn everything from fundamentals to system
> administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--
Greg Whittier <gr...@th...>
|