有时候我们需要Python进行数据可视化,绘制各种图形时,往往自己觉得大功告成,结果就是有问题,比如在画图时中文变成了乱码,程序如下:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)  # 用numpy生成x坐标点
y = x * x + x - 3
# 生成y坐标的值
plt.title("我就是喜欢中文标题啊。。。。。。")  # 设置标题
plt.xlabel("x")  # 设置x坐标标签
plt.ylabel("y")  # 设置y坐标标签
plt.plot(x, y)  # 绘图
plt.show()  # 显示图片

运行结果如图所示
在这里插入图片描述
原因:标题默认英文,要想显示中文,必须加上以下语句:

# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

在这里插入图片描述

要想显示每个点的坐标,只需添加这几句:

for a, b in zip(x, y):  # 添加这个循坏显示坐标
    plt.text(a, b, (a, b), ha='center', va='bottom', fontsize=10)

全部代码如下:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)  # 用numpy生成x坐标点
y = x * x + x - 3
# 生成y坐标的值
plt.title("我就是喜欢中文标题啊。。。。。。")  # 设置标题
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
plt.xlabel("x")  # 设置x坐标标签
plt.ylabel("y")  # 设置y坐标标签
plt.plot(x, y, color='r', markerfacecolor='blue', marker='o')  # 绘图
for a, b in zip(x, y):  # 添加这个循环显示坐标
    plt.text(a, b, (a, b), ha='center', va='bottom', fontsize=10)
plt.show()  # 显示图片

效果如图:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐