You are welcome, glad to help.

On Thu, Oct 14, 2010 at 4:04 PM, Benoit Gaillard
<benoit.gaill...@univ-tlse2.fr> wrote:
> 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.
>
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to