On Mon, Apr 20, 2009 at 10:35 AM, Jason Grout
<jason-s...@creativetrax.com> wrote:
>
> William Stein wrote:
>> On Mon, Apr 20, 2009 at 10:17 AM, Jason Grout
>> <jason-s...@creativetrax.com> wrote:
>>> William Stein wrote:
>>>> On Mon, Apr 20, 2009 at 9:50 AM, Nick Alexander <ncalexan...@gmail.com> 
>>>> wrote:
>>>>>> If there's not currently an easy way to do this,
>>>> There isn't one.
>>>>
>>>>>> I think this could
>>>>>> easily be accomplished by having the show command return the "<img
>>>>>> src='cell://filename'/>" tag that we would normally do by hand,
>>>>>> instead
>>>>>> of just generating an image, returning None, and letting the notebook
>>>>>> automatically pick up the image at the end of the output.
>>>> Yes, that does seem like a good idea.  Try it.
>>>
>>> Yep, I've been trying the last few minutes.  Part of what messes things
>>> up is that the output of a cell does not include anything but the last
>>> command, so a cell like:
>>>
>>> show(graphic)
>>> print "hi"
>>>
>>> will not print out the <img> tag returned by show.
>>>
>>> There was discussion about this a while ago, IIRC.  Does anyone know if
>>> anything was done about it? (it's obviously not fixed...)
>>>
>>> You can see the problem in a cell that looks like this:
>>>
>>> s="hi"
>>> s
>>> s
>>>
>>> It will only print out "hi" once (i.e., only display the result of the
>>> last command)
>>>
>>> Jason
>>
>>
>> I think you're confused.  Try the following little demo worksheet, and
>> all will be clear:
>>
>>
>> {{{id=15|
>> def myshow(G, *args, **kwds):
>>     filename = 'sage-%s.png'%randint(0,1000000)
>>     G.save(filename, *args, **kwds)
>>     html("<img src='cell://%s'>"%filename)
>> ///
>> }}}
>>
>> {{{id=14|
>> print "First plot sin:"
>> myshow(plot(sin,0,2),figsize=[2,1])
>> print "And now for cos"
>> myshow(plot(cos,0,2),figsize=[2,1])
>> print "Cool, eh?"
>> ///
>>
>> First plot sin:
>> <html><font color='black'><img src='cell://sage-213578.png'></font></html>
>> And now for cos
>> <html><font color='black'><img src='cell://sage-462904.png'></font></html>
>> Cool, eh?
>> }}}
>
>
>
> So apparently html() contains the print function?  This worksheet
> illustrates the problem with the approach:
>
> {{{id=15|
> def myshow(G, *args, **kwds):
>     filename = 'sage-%s.png'%randint(0,1000000)
>     G.save(filename, *args, **kwds)
>     html("<img src='cell://%s'>"%filename)
> ///
> }}}
>
> {{{id=14|
> print "First plot sin:"
> plot1=myshow(plot(sin,0,2),figsize=[2,1]) # Shows the plot anyway!
> print "And now for cos"
> plot2=myshow(plot(cos,0,2),figsize=[2,1]) # Shows the plot anyway!
> print "Cool, eh?"
> ///
>
> First plot sin:
> <html><font color='black'><img src='cell://sage-558439.png'></font></html>
> And now for cos
> <html><font color='black'><img src='cell://sage-118258.png'></font></html>
> Cool, eh?
> }}}
>
> {{{id=16|
> plot1 # Should show the plot
> ///
> }}}
>
> {{{id=17|
> plot2 # Should show the plot
> ///
> }}}
>
> {{{id=18|
>
> ///
> }}}

This worksheet with vanilla sage illustrates that you're confused and
that's not a problem with my suggested approach:

{{{id=13|
f = show(plot(sin,0,2))
///
}}}

{{{id=10|
f          # should *not* show the plot!
///
}}}


{{{id=16|
type(f)               # and this is why
///

<type 'NoneType'>
}}}

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to