Matplotlib:编写从右到左的文本(希伯来语,阿拉伯语等)(Matplotlib: Writi

2019-08-17 14:34发布

我想添加一些文字到我的情节是RTL(在这种情况下,希伯来文)。 经过一番工作,设法得到它显示的文字,但它显示的LTR(意味着,在reverese顺序)。 我已经挖成的参考和网上做了广泛的搜索,并没有上来。

对我使用什么样的一个例子:

import matplotlib.pyplot as plt
plt.text(0.5, 0.5, u'שלום כיתה א', name = 'Arial')
plt.show()

它显示 'אהתיכםלוש'。 如果你不能看到希伯来文,就好像我输入“你好”,输出将是“2009东海生日贺”。

我不能简单地扭转输入,因为它是混合LTR和RTL。

每一个帮助将不胜感激。

Answer 1:

对于阿拉伯语你既需要bidi.algorithm.get_displayarabic_reshaper模块:

from bidi.algorithm import get_display
import matplotlib.pyplot as plt
import arabic_reshaper

reshaped_text = arabic_reshaper.reshape(u'لغةٌ عربيّة')
artext = get_display(reshaped_text)

plt.text(0.25, 0.45, artext , name = 'Times New Roman',fontsize=50)
plt.show()



Answer 2:

因为凡遇到同样的问题,我发现了部分解决方案。

的比迪包提供了此功能,因此,使用:

from bidi import algorithm as bidialg
import matplotlib.pyplot as plt
text = bidialg.get_display(u'שלום כיתה א')
plt.text(0.5, 0.5, text , name = 'Arial')
plt.show()

正确显示。

那么,为什么部分? 因为我发现的比迪包有时弄乱我与matplotlib使用胶乳表达。 所以小心使用。



文章来源: Matplotlib: Writing right-to-left text (Hebrew, Arabic, etc.)