What can be done with the current Matplotlib is to use the offset boxes.
Here is a modified version of a code snippet from

 
http://abitofpythonabitofastronomy.blogspot.com/2009/05/mpl-multicolor-text.html

Regards,

-JJ


from matplotlib.offsetbox import HPacker, TextArea, AnnotationBbox

f = figure(1)
ax = f.add_subplot(111)

txt1 = TextArea("A$^3$", textprops=dict(color="r", size=150))
txt2 = TextArea("gb", textprops=dict(color="k", size=150))

txt = HPacker(children=[txt1, txt2],
            align="baseline",
            pad=0, sep=0)

bbox =  AnnotationBbox(txt, xy=(0.5, 0.5),
                       xycoords='data',
                       frameon=False,
                       box_alignment=(0.5, 0.5), # alignment center, center
                       )

ax.add_artist(bbox)

show()





On Wed, Feb 8, 2012 at 7:44 AM, Yann Tambouret <yannp...@bu.edu> wrote:
> Along the lines of Mike's suggestion, I thought this could be done using
> Latex.
>
>
> I posted an answer on SO with an example of doing this, but it seems only to
> work with postscript backend. Other backends override the color with the mpl
> text color setting.
>
> Is there a way to prevent this override? For example don't try to use 'PS'
> backend, and look at hte figure interactively. It defaults to black.
>
> http://stackoverflow.com/a/9185143/717357
>
> -Yann
>
>
>
>
> On Tue, Feb 7, 2012 at 4:46 PM, Paul Ivanov <pivanov...@gmail.com> wrote:
>>
>> Benjamin Root, on 2012-02-07 13:46,  wrote:
>> > Also, how deep should this rabbit hole go?  I could imagine one could
>> > want
>> > this for title() and figtitle().  Maybe it would be best to implement
>> > this
>> > at the Text() constructor level?
>>
>> For this reason, I would discourage even implementing such
>> functionality in the core of matplotlib. This functionality doesn't strike
>> me
>> as something that ought to be available everywhere by default - if someone
>> needs it, they can implement it as follows:
>>
>> -----
>> import matplotlib.pyplot as plt
>> from matplotlib import transforms
>>
>> def rainbow_text(x,y,ls,lc,**kw):
>>    """
>>    Take a list of strings ``ls`` and colors ``lc`` and place them next to
>> each
>>    other, with text ls[i] being shown in color lc[i].
>>
>>    This example shows how to do both vertical and horizontal text, and
>> will
>>    pass all keyword arguments to plt.text, so you can set the font size,
>>    family, etc.
>>    """
>>    t = plt.gca().transData
>>    fig = plt.gcf()
>>    plt.show()
>>
>>    #horizontal version
>>    for s,c in zip(ls,lc):
>>        text = plt.text(x,y," "+s+" ",color=c, transform=t, **kw)
>>        text.draw(fig.canvas.get_renderer())
>>        ex = text.get_window_extent()
>>        t = transforms.offset_copy(text._transform, x=ex.width,
>> units='dots')
>>
>>    #vertical version
>>    for s,c in zip(ls,lc):
>>        text = plt.text(x,y," "+s+" ",color=c, transform=t,
>>                rotation=90,va='bottom',ha='center',**kw)
>>        text.draw(fig.canvas.get_renderer())
>>        ex = text.get_window_extent()
>>        t = transforms.offset_copy(text._transform, y=ex.height,
>> units='dots')
>>
>>
>> plt.figure()
>> rainbow_text(0.5,0.5,"all unicorns poop rainbows ! ! !".split(),
>>        ['red', 'orange', 'brown', 'green', 'blue', 'purple', 'black'],
>>        size=40)
>>
>> best,
>> --
>> Paul Ivanov
>> 314 address only used for lists,  off-list direct email at:
>> http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7
>>
>>
>> ------------------------------------------------------------------------------
>> Keep Your Developer Skills Current with LearnDevNow!
>> The most comprehensive online learning library for Microsoft developers
>> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
>> Metro Style Apps, more. Free future releases when you subscribe now!
>> http://p.sf.net/sfu/learndevnow-d2d
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>
>
> ------------------------------------------------------------------------------
> Keep Your Developer Skills Current with LearnDevNow!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-d2d
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to