Matplotlib 绘制包含阿拉伯字符的柱状图
在本文中,我们将介绍如何使用Matplotlib库在绘制柱状图时包含阿拉伯字符。
阅读更多:Matplotlib 教程
Matplotlib库和柱状图简介
Matplotlib是一个用于绘制可视化图表的Python库,其中包含了许多绘制2D图形的命令,包括各种类型的图形,例如线图、散点图、柱状图、等高线图、热图等等。而柱状图则是一种常用的数据可视化图表类型,其中柱子的长度或高度代表了相应数据的大小。
准备阿拉伯数据
在开始绘制阿拉伯字符的柱状图前,我们需要准备一些阿拉伯数据,例如一个包含国家名字和其对应人口数量的数据集。在此我们选择以阿拉伯文写出的国家名字作为数据,示例如下:
data = {'مصر': 1000000, 'الجزائر': 500000, 'المغرب': 300000, 'تونس': 150000, 'ليبيا': 70000}
为了简化示例,我们将人口数量数据设为了随意的数字,实际应用中需要根据实际数据进行替换。
设置Matplotlib全局字体
Matplotlib绘制图表时默认使用的是系统自带的字体,如果该字体不支持某种语言字符的话,则会出现乱码情况。而针对阿拉伯字符,我们可以使用自带的DejaVu Serif字体即可。
若在Jupyter Notebook中绘图,则需要使用以下代码:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['DejaVu Serif']
若在Python文件中绘图,则需要使用以下代码:
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'DejaVu Serif'
这样设置以后,即可在图表中正常显示阿拉伯字符。
绘制柱状图
绘制柱状图可以使用Matplotlib中的bar函数,其使用方法如下:
plt.bar(x, height, width, color, tick_label)
其中,x代表柱子的位置,height代表柱子的高度,width代表柱子的宽度,color代表柱子的颜色,tick_label代表柱子的标签。对应我们的阿拉伯数据集,绘图代码如下:
plt.bar(data.keys(), data.values(), width=0.5)
plt.xlabel('国家')
plt.ylabel('人口数量')
plt.title('阿拉伯国家人口数量')
plt.show()
执行该代码后,即可得到如下图所示的柱状图:
阿拉伯国家人口数量
1000000 ██████████████████████████████████████ مصر
500000 ██████████████ الجزائر
300000 █████████ المغرب
150000 █████ تونس
70000 █████ ليبيا
总结
通过设置Matplotlib全局字体,我们可以轻松绘制包含阿拉伯字符的柱状图。在实际工作中,还可以通过调整图表的颜色、标签、标题等来进一步完善图表的呈现效果,以满足不同的需求。
极客教程