[matplotlib-devel] Canvas HTML5 backend

2009-09-01 Thread Michael Thompson
Hi,
  I'm trying to work on the canvas javascript backend I found here
[1]. I'm trying to add text but the canvas origin is at the top left,
how can I transform the co-ordinates from the matplotlib to canvas?

def draw_text(self, gc, x, y, s, prop, angle, ismath=False):
ctx = self.ctx
ctx.font = "12px Times New Roman";
ctx.fillStyle = "Black";
ctx.fillText("%r" % s, x, y)

[1] 
http://bitbucket.org/sanxiyn/matplotlib-canvas/src/80e9abf6d251/backend_canvas.py

Regards, Michael

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel


Re: [matplotlib-devel] Canvas HTML5 backend

2009-09-01 Thread Michael Thompson
2009/9/1 John Hunter :
> On Tue, Sep 1, 2009 at 10:32 AM, Michael Thompson wrote:
>> Hi,
>>  I'm trying to work on the canvas javascript backend I found here
>> [1]. I'm trying to add text but the canvas origin is at the top left,
>> how can I transform the co-ordinates from the matplotlib to canvas?
>>
>>    def draw_text(self, gc, x, y, s, prop, angle, ismath=False):
>>        ctx = self.ctx
>>        ctx.font = "12px Times New Roman";
>>        ctx.fillStyle = "Black";
>>        ctx.fillText("%r" % s, x, y)
>>
>> [1] 
>> http://bitbucket.org/sanxiyn/matplotlib-canvas/src/80e9abf6d251/backend_canvas.py
>
> The backend canvas should know its height, so height-y should
> transform from bottom to top

Thanks, turns out to be a problem setting the size of the canvas
element that the javascript is rendered into. If self.flipy is set
then the text.py takes care of subtracting y from the height.

Next problem is the text alignment, look OK on the right axis but
wrong on the left I presume it's the alignment.

The documentation says that s should be a matplotlib.text.Text
instance and I can use s.get_horizontalalignment() but it seems that s
is a unicode string. How can I find the alignment I should set on the
text?

Michael

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel


Re: [matplotlib-devel] Canvas HTML5 backend

2009-09-01 Thread Michael Thompson
2009/9/1 Jae-Joon Lee :
> My understanding is that all the backends should use left-bottom
> alignment. Text alignment in matplotlib is handled by mpl itself (not
> by the backend), and for this to work, you have to define
> get_text_width_height_descent method correctly.
>
> The real question is how we know the metric of the font that will be
> used for rendering. I have little knowledge about the html canvas
> specification, but I presume that the situation is very similar to the
> svg case. Unless we embed the fonts (the svg backend has an option to
> embed the fonts as paths), I don't think it is possible to get it
> right.

I see firefox 3.5 (html5) has a method to measure the width of the
text, I'll look at using this in a javascript function to render the
text.

 https://developer.mozilla.org/en/Drawing_text_using_a_canvas#measureText%28%29

>
> ps. gnuplot seems to use embedded fonts for their html5 canvas backend
> (I haven't checked carefully but their demo output uses canvastext.js,
> originally from  http://jim.studt.net/canvastext/)

yep noticed that, but didn't realize the significance of not using the
built in canvas text drawing.

Thanks, Michael

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel