matplotlib中的阿拉伯语文本

时间:2017-11-01 14:46:10

标签: python python-3.x matplotlib arabic-support

xlabel和ylabel不显示阿拉伯语

x = [2, 4, 6, 8, 10]
y = [6, 7, 8, 9, 10]

plt.bar(x, y, label='Bar1', color='red')
plt.xlabel("الفواصل")
plt.ylabel("الترتيبات")
plt.show()

enter image description here

2 个答案:

答案 0 :(得分:-1)

如果你使用unicode字符串(u"الفواصل")而不是通常的字符串,它应该可以工作。

x = [2, 4, 6, 8, 10]
y = [6, 7, 8, 9, 10]

plt.bar(x, y, label='Bar1', color='red')
plt.xlabel(u"الفواصل")
plt.ylabel(u"الترتيبات")
plt.show()

enter image description here

或者,为了获得正确的订单

import matplotlib.pyplot as plt
x = [2, 4, 6, 8, 10]
y = [6, 7, 8, 9, 10]

plt.bar(x, y, label='Bar1', color='red')
plt.xlabel(u"الفواصل"[::-1])
plt.ylabel(u"الترتيبات"[::-1])
plt.show()

enter image description here

答案 1 :(得分:-1)

import arabic_reshaper
import matplotlib.pyplot as plt
x = [2, 4, 6, 8, 10]
y = [6, 7, 8, 9, 10]
xlbl = get_display( arabic_reshaper.reshape('الفواصل'.decode('utf8')))
ylbl = get_display( arabic_reshaper.reshape('الترتيبات'.decode('utf8')))
plt.bar(x, y, label='Bar1', color='red')
plt.xlabel(xlbl, fontdict=None, labelpad=None)
plt.ylabel(ylbl, fontdict=None, labelpad=None)
plt.show()

图解阿拉伯语