Kor*_*rem 16 python matplotlib hebrew right-to-left
我正在尝试在我的情节中添加一些文本,即RTL(在本例中为希伯来语).经过一些工作设法让它显示文本,但它显示LTR(意思是,以崇敬的顺序).我已经挖掘了参考资料并在网上进行了广泛的搜索,没有任何结果.
我正在使用的一个例子:
import matplotlib.pyplot as plt
plt.text(0.5, 0.5, u'???? ???? ?', name = 'Arial')
plt.show()
Run Code Online (Sandbox Code Playgroud)
它显示'אהתיכםלוש'.如果你看不到希伯来语,就好像我输入'Hello',输出就是'olleH'.
我不能简单地反转输入,因为它是混合LTR和RTL.
我们将不胜感激.
Nas*_*ibi 26
对于阿拉伯语,你需要bidi.algorithm.get_display
和arabic_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()
Run Code Online (Sandbox Code Playgroud)
Kor*_*rem 18
对于遇到同样问题的人,我找到了部分解决方案.
的比迪包提供了此功能,因此,使用:
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()
Run Code Online (Sandbox Code Playgroud)
正确显示.
那为什么它偏袒?因为我发现bidi包装有时会混淆我使用matplotlib的乳胶表达.所以要小心使用它.
小智 6
您可以尝试通过以下方式翻转文本:
\nimport matplotlib.pyplot as plt\nplt.text(0.5, 0.5, (u\'\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d \xd7\x9b\xd7\x99\xd7\xaa\xd7\x94 \xd7\x90\')[::-1], name = \'Arial\')\nplt.show()\n
Run Code Online (Sandbox Code Playgroud)\n