Thank you very much it all works fine now,

I downloaded and installed the font in  
http://archive.ubuntu.com/ubuntu/pool/main/t/ttf-wqy-zenhei/ttf-wqy-zenhei_0.5.23.orig.tar.gz,
 as you advised. Then i deleted the fontList.cache de matplotlib to force its 
updating, and ran the script with """ fontname="WenQuanYi Zen Hei"  
"""

I can now display the characters and save the plots as pdf.

Thanks a lot for you wise help, i learned a lot.

Benoit


Quoting sunqiang <sunqi...@gmail.com>:

> On Wed, Oct 13, 2010 at 5:30 PM, Benoit Gaillard
> <benoit.gaill...@univ-tlse2.fr> wrote:
>> Actually, i must apologize
>>
>> By calling fonts by their real name eg: "WenQuanYi Zen Hei" (instead of
>> wqy-microhei, their file name), i can display them. So no worries for issue
>> 2. However, I do not manage to export the png to pdf or eps due to the
>> following error:
>>
>> "TrueType font is missing table"
>>
>> Is that due to my changing the font name from *.ttc to *.ttf?
> the "c" in ".ttc" means "Container", wqy-*.ttc includes more than one ttf.
> so, maybe just rename *.ttc to *.ttf is not enough.
> I guess, You can find some font tools to extract ttf from ttc, or
> install another Chinese font provided by your operation system. or
> just download the ttf version from
> http://packages.ubuntu.com/hardy/ttf-wqy-zenhei (directly:
> http://archive.ubuntu.com/ubuntu/pool/main/t/ttf-wqy-zenhei/ttf-wqy-zenhei_0.5.23.orig.tar.gz)
> I don't know font enough, so I didn't test the first method. I only
> test the last method.
> after download the font into my Window machine. it can display Chinese
> with "'WenQuanYi Zen Hei'" and save figure to png and pdf.(ps, eps
> doesn't work, even without a error log").
> (my Linux machine(Ubuntu Hardy 8.04) can display Chinese and save
> figure to png, pdf, ps, eps correctly already.)
>>
>> regards,
>>
>> benoit
>>
>>
>> Quoting Benoit Gaillard <benoit.gaill...@univ-tlse2.fr>:
>>
>>> Hi,
>>>
>>> When looking in my fontFile.cache, i did not find any of
>>> '/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf',
>>> '/usr/share/fonts/truetype/wqy/wqy-microhei.ttf' or simhei. this is why
>>> i could not display the characters.
>>>
>>> I deleted the cache and re-lounched my script, so that mpl had to look
>>> for the fonts and update the cache. It added the simhei fonts to the
>>> list. I can now display chinese characters with the simhei font.
>>>
>>> I ran into 2 more issues:
>>> - Simhei "has no glyph names", which prevents me from exporting into pdf
>>> - I do not manage to make mpl take into account microhei and zenhei,
>>> whereas i have them in
>>> '/usr/share/fonts/truetype/wqy/wqy-microhei.ttc'. I changed their name
>>> to '/usr/share/fonts/truetype/wqy/wqy-microhei.ttf', and now mpl finds
>>> them. However they fail to display chinese characters
>>>
>>> So, thank you for your help, i managed to display chinese characters
>>> but there are still some issues. Do you have any idea?
>>>
>>> Benoit
>>>
>>>
>>> Quoting sunqiang <sunqi...@gmail.com>:
>>>
>>>> oh, only test it on Windows yet.  both "sim hei"and "microsoft yahei"
>>>> are fontname on Windows Platform.
>>>> maybe just copy "Sim Hei" to font directory is not enough? no clue here.
>>>>
>>>> I just test the script on Linux (Ubuntu 8.04, Python 2.5, matplotlib
>>>> 0.98.4) with the follow steps:
>>>> 1, find the configure directory of matplotlib
>>>> import matplotlib as mpl
>>>> mpl.get_configdir()
>>>>
>>>> return "~/.matplotlib"
>>>> 2, in the configure directory, there is a file "fontList.cache"
>>>> I find this
>>>> (dp294
>>>> ...
>>>> S'WenQuanYi Zen Hei'
>>>> ...
>>>> S'/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf'
>>>> ...
>>>>
>>>> I just know WenQuanYi is a "Chinese font"
>>>> http://packages.ubuntu.com/hardy/ttf-wqy-zenhei
>>>> 3, replace "Sim Hei" in your original script with "WenQuanYi Zen Hei",
>>>> now it can display Chinese.
>>>> both methods still work(embed fontname argument, or set
>>>> mpl.rcParams['font.sans-serif'])
>>>>
>>>> maybe you can find a font that support Chinese character on your
>>>> platform with these steps and try again?
>>>>
>>>> On Tue, Oct 12, 2010 at 10:41 PM, Benoit Gaillard
>>>> <benoit.gaill...@univ-tlse2.fr> wrote:
>>>>>
>>>>> Thank you for your help,
>>>>>
>>>>> but it does not seem to work.
>>>>>
>>>>> I have downloaded simhei fonts and added it in my directory
>>>>> /usr/shared/fonts/truetype but even by using
>>>>> """fontname="simhei" """,
>>>>> or:
>>>>> """mpl.rcParams['font.sans-serif'] = ['SimHei']
>>>>> mpl.rcParams['axes.unicode_minus'] = False """
>>>>>
>>>>> i still display empty boxes instead of chinese characters.
>>>>>
>>>>> It is worth noting that these chinese characters print well on the
>>>>> console
>>>>> if i add the line:
>>>>> """for ytic in ytics:
>>>>>    print ytic"""
>>>>>
>>>>> Unfortunately, apart from copying lines of code, i cannot do much with
>>>>> the
>>>>> blog you mention, as i don't understand what is written in it.
>>>>>
>>>>> @Mike: "monospace" family is one that enables me to display accents of
>>>>> french words, for the xticks. "fantasy" family was the last family i
>>>>> tried
>>>>> for the chinese labels, but to no success.
>>>>>
>>>>> So, has anyone managed to do it? Is there something i am missing?,
>>>>>
>>>>> regards,
>>>>>
>>>>> Benoit.
>>>>>
>>>>> Quoting sunqiang <sunqi...@gmail.com>:
>>>>>
>>>>>> maybe change the line
>>>>>> """axim.set_yticklabels(ytics,fontsize=15,family='fantasy')""" to
>>>>>> """axim.set_yticklabels(ytics,fontsize=15, fontname= "simsun (founder
>>>>>> extended)")"""
>>>>>> (or replace fontname with "simhei" or "microsoft yahei") is enough.
>>>>>>
>>>>>>
>>>>>> or, put these two lines:
>>>>>> mpl.rcParams['font.sans-serif'] = ['SimHei']
>>>>>> mpl.rcParams['axes.unicode_minus'] = False
>>>>>>
>>>>>> there is a Chinese blog (not mine) maybe worth  reading:
>>>>>> http://hi.baidu.com/lijiangshui/blog/item/a0aad703cd65ee7e3812bb49.html
>>>>>>
>>>>>> hope this help
>>>>>>
>>>>>> On Mon, Oct 11, 2010 at 3:13 AM, Benoit Gaillard
>>>>>> <benoit.gaill...@univ-tlse2.fr> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> How can one display Mandarin labels in a plot, as yticks_labels for
>>>>>>> example?
>>>>>>> It looks to me that there is no font in matplotlib that can display
>>>>>>> Chinese
>>>>>>> characters? I can display accentuation from 'utf8' but i could not
>>>>>>> find a
>>>>>>> font family that would display Chinese characters.
>>>>>>>
>>>>>>> Here is an example of plot that displays empty boxes instead of
>>>>>>> Chinese
>>>>>>> characters. In comments you can see various failed attempts:
>>>>>>>
>>>>>>> import matplotlib as mpl
>>>>>>> from matplotlib import cm
>>>>>>> from matplotlib import rc
>>>>>>> #rc('font',**{'family':'sans-serif','sans-serif':['SimHei','Arial']})
>>>>>>> #mpl.rcParams['font.sans-serif'] = ['SimHei','Arial']
>>>>>>> import matplotlib.pyplot as plt
>>>>>>>
>>>>>>> matrix=[[skey+tkey for skey in [1,2]] for tkey in [1,2]]
>>>>>>> fig = plt.figure()
>>>>>>> axim = fig.add_subplot(111)
>>>>>>> #ytics: caractères chinois en utf8
>>>>>>> ytics=['\xe6\x8a\xb1'.decode('utf8'),'\xe6\x93\x81'.decode('utf8')]
>>>>>>>
>>>>>>> xtics=['d\xc3\xa9bo\xc3\xaeter'.decode('utf8'),'diviser'.decode('utf8')]
>>>>>>> axim.imshow(matrix, cmap=cm.jet,
>>>>>>> interpolation='nearest',origin='lower')
>>>>>>> axim.set_xticks(range(2))
>>>>>>>
>>>>>>>
>>>>>>> axim.set_xticklabels(xtics,fontsize=15,rotation=25,ha='right',family='monospace')
>>>>>>> axim.set_yticks(range(2))
>>>>>>> axim.set_yticklabels(ytics,fontsize=15,family='fantasy')#,fontname='AR
>>>>>>> PL
>>>>>>> ungtiL GB')
>>>>>>> plt.show()
>>>>>>>
>>>>>>> Thank you for your help,
>>>>>>>
>>>>>>> Benoit
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> This message was sent using IMP, the Internet Messaging Program.
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> How can one display mandarin labels in a plot, as yticks_labels for
>>>>>>> example?
>>>>>>> It looks to me that there is no font in matplotlib that can display
>>>>>>> chinese
>>>>>>> characters? I can display accentuation from 'utf8' but i could not
>>>>>>> find a
>>>>>>> font family that would display chinese characters.
>>>>>>>
>>>>>>> Here is an example of plot that displays empty boxes instead of
>>>>>>> chinese
>>>>>>> characters. In comment you can see various failed attempts:
>>>>>>>
>>>>>>> import matplotlib as mpl
>>>>>>> from matplotlib import cm
>>>>>>> from matplotlib import rc
>>>>>>> #rc('font',**{'family':'sans-serif','sans-serif':['SimHei','Arial']})
>>>>>>> #mpl.rcParams['font.sans-serif'] = ['SimHei','Arial']
>>>>>>> import matplotlib.pyplot as plt
>>>>>>>
>>>>>>>     matrix=[[skey+tkey for skey in [1,2]] for tkey in [1,2]]
>>>>>>>     fig = plt.figure()
>>>>>>>     axim = fig.add_subplot(111)
>>>>>>>     #ytics: caractères chinois en utf8
>>>>>>>
>>>>>>> ytics=['\xe6\x8a\xb1'.decode('utf8'),'\xe6\x93\x81'.decode('utf8')]
>>>>>>>
>>>>>>>
>>>>>>> xtics=['d\xc3\xa9bo\xc3\xaeter'.decode('utf8'),'diviser'.decode('utf8')]
>>>>>>>     axim.imshow(matrix, cmap=cm.jet, interpolation='nearest',
>>>>>>> origin='lower')
>>>>>>>     axim.set_xticks(range(2))
>>>>>>>     axim.set_xticklabels(xtics,
>>>>>>> fontsize=15,rotation=25,ha='right',family='monospace')
>>>>>>>     axim.set_yticks(range(2))
>>>>>>>
>>>>>>> axim.set_yticklabels(ytics,fontsize=15,family='fantasy')#,fontname='AR
>>>>>>> PL SungtiL GB')
>>>>>>>     plt.show()
>>>>>>>
>>>>>>> Thank you for your help,
>>>>>>>
>>>>>>> Benoit
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Beautiful is writing same markup. Internet Explorer 9 supports
>>>>>>> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
>>>>>>> Spend less time writing and  rewriting code and more time creating
>>>>>>> great
>>>>>>> experiences on the web. Be a part of the beta today.
>>>>>>> http://p.sf.net/sfu/beautyoftheweb
>>>>>>> _______________________________________________
>>>>>>> Matplotlib-users mailing list
>>>>>>> Matplotlib-users@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ----------------------------------------------------------------
>>>>> This message was sent using IMP, the Internet Messaging Program.
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> ----------------------------------------------------------------
>>> This message was sent using IMP, the Internet Messaging Program.
>>
>>
>>
>> ----------------------------------------------------------------
>> This message was sent using IMP, the Internet Messaging Program.
>>
>>
>



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to