Python画图中文
在Python中,使用matplotlib库可以方便地绘制各种图表,但是默认情况下matplotlib并不支持中文显示。本文将介绍如何在Python中画图时实现中文显示。主要分为以下几个部分:
- 中文显示准备工作
- 使用matplotlib画图显示中文
- 使用seaborn画图显示中文
- 使用plotly画图显示中文
1. 中文显示准备工作
在Python中实现中文显示,需要以下几个步骤:
- 安装中文字体库
- 指定中文字体
- 设置rcParams
首先,我们需要安装中文字体库,比如msyh.ttf,可以在Windows系统中的字体文件夹中找到。将该字体文件放在指定的目录下,这里以/usr/share/fonts/truetype/msyh.ttf
为例。
然后,在Python代码中指定中文字体和设置rcParams,代码如下:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
2. 使用matplotlib画图显示中文
2.1 折线图
import matplotlib.pyplot as plt
# 设置中文字体和rcParams
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 6]
# 画折线图
plt.plot(x, y)
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()
2.2 散点图
import matplotlib.pyplot as plt
# 设置中文字体和rcParams
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 6]
# 画散点图
plt.scatter(x, y)
plt.title('散点图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()
3. 使用seaborn画图显示中文
seaborn是基于matplotlib的数据可视化库,可以更方便地绘制各种统计图表。
3.1 条形图
import seaborn as sns
import matplotlib.pyplot as plt
# 设置中文字体和rcParams
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
# 创建数据
x = ['A', 'B', 'C', 'D', 'E']
y = [20, 35, 30, 25, 40]
# 画条形图
sns.barplot(x=x, y=y)
plt.title('条形图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()
3.2 箱线图
import seaborn as sns
import matplotlib.pyplot as plt
# 设置中文字体和rcParams
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
# 创建数据
data = [np.random.randn(100) for _ in range(4)]
# 画箱线图
sns.boxplot(data=data)
plt.title('箱线图示例')
plt.show()
4. 使用plotly画图显示中文
plotly是一个交互式的数据可视化库,可以生成互动性图表。
4.1 饼图
import plotly.graph_objects as go
# 设置中文字体和rcParams
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
# 创建数据
labels = ['A', 'B', 'C', 'D']
values = [30, 40, 20, 10]
# 画饼图
fig = go.Figure(data=[go.Pie(labels=labels, values=values)])
fig.update_layout(title='饼图示例')
fig.show()
通过以上介绍,你可以在Python中画图时很方便地显示中文,无论是使用matplotlib、seaborn还是plotly,都能轻松实现中文显示。