Matplotlib 绘制包含阿拉伯字符的柱状图

Matplotlib 绘制包含阿拉伯字符的柱状图

在本文中,我们将介绍如何使用Matplotlib库在绘制柱状图时包含阿拉伯字符。

阅读更多:Matplotlib 教程

Matplotlib库和柱状图简介

Matplotlib是一个用于绘制可视化图表的Python库,其中包含了许多绘制2D图形的命令,包括各种类型的图形,例如线图、散点图、柱状图、等高线图、热图等等。而柱状图则是一种常用的数据可视化图表类型,其中柱子的长度或高度代表了相应数据的大小。

准备阿拉伯数据

在开始绘制阿拉伯字符的柱状图前,我们需要准备一些阿拉伯数据,例如一个包含国家名字和其对应人口数量的数据集。在此我们选择以阿拉伯文写出的国家名字作为数据,示例如下:

data = {'مصر': 1000000, 'الجزائر': 500000, 'المغرب': 300000, 'تونس': 150000, 'ليبيا': 70000}
Python

为了简化示例,我们将人口数量数据设为了随意的数字,实际应用中需要根据实际数据进行替换。

设置Matplotlib全局字体

Matplotlib绘制图表时默认使用的是系统自带的字体,如果该字体不支持某种语言字符的话,则会出现乱码情况。而针对阿拉伯字符,我们可以使用自带的DejaVu Serif字体即可。

若在Jupyter Notebook中绘图,则需要使用以下代码:

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['DejaVu Serif']
Python

若在Python文件中绘图,则需要使用以下代码:

import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'DejaVu Serif'
Python

这样设置以后,即可在图表中正常显示阿拉伯字符。

绘制柱状图

绘制柱状图可以使用Matplotlib中的bar函数,其使用方法如下:

plt.bar(x, height, width, color, tick_label)
Python

其中,x代表柱子的位置,height代表柱子的高度,width代表柱子的宽度,color代表柱子的颜色,tick_label代表柱子的标签。对应我们的阿拉伯数据集,绘图代码如下:

plt.bar(data.keys(), data.values(), width=0.5)
plt.xlabel('国家')
plt.ylabel('人口数量')
plt.title('阿拉伯国家人口数量')
plt.show()
Python

执行该代码后,即可得到如下图所示的柱状图:

    阿拉伯国家人口数量
1000000 ██████████████████████████████████████ مصر
 500000 ██████████████ الجزائر
 300000 █████████ المغرب
 150000 █████ تونس
  70000 █████ ليبيا
Python

总结

通过设置Matplotlib全局字体,我们可以轻松绘制包含阿拉伯字符的柱状图。在实际工作中,还可以通过调整图表的颜色、标签、标题等来进一步完善图表的呈现效果,以满足不同的需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册