可视化 DataFrame 数据中文不乱码的解决方案

可视化 DataFrame 数据中文不乱码的解决方案

要将pandas处理后的DataFrame数据进行可视化可以通过第三方库matplotlib来实现,使用pandasmatplotlib前需确保其已经安装。如果对pandas处理后的数据进行可视化时出现了中文乱码的现象,可通过如下方式解决:

  • 通过参数字典rcParams修改已经加载的配置项,如下是具体步骤:
    • 创建DataFrame数据。
    • 修改已经加载的配置项。
    • 可视化数据。

如下是通过参数字典rcParams修改已经加载的配置项解决中文乱码的代码示例:

import pandas as pd
import matplotlib.pyplot as plt

def data_visualization(data):
        df = pd.DataFrame(data)
        # 修改已经加载的配置项
        plt.rcParams['font.sans-serif'] = ['SimHei']
        plt.rcParams['axes.unicode_minus'] = False
        # 2.绘制折线图
        plt.plot(df["城市"], df["人口"], marker='o')
        plt.xlabel('城市', fontsize=20)
        plt.ylabel('人口', fontsize=20)
        # 显示图像
        plt.show()

data = {'城市': ['北京', '上海', '广州', '深圳'],
        '人口': [2154, 2424, 1404, 1303]}
data_visualization(data)
  • 通过参数fontproperties指定字体文件,如下是具体步骤:
    • 创建DataFrame数据。
    • 指定字体文件并创建字体对象。
    • 设置图片标题并加载数据。
    • 可视化数据。

如下是通过参数fontproperties指定字体文件解决中文乱码的代码示例:

from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
import pandas as pd

def data_visualization(data):
    df = pd.DataFrame(data)
    # 指定字体文件
    font = FontProperties(fname="msyh.ttc")
    # 绘制画布
    plt.figure(figsize=(8, 6), dpi=80)
    plt.plot(df['城市'], df['人口'], 'ro-')
    # 设置标题
    plt.title('城市人口统计', fontsize=30, fontproperties=font)
    # 加载数据
    plt.xlabel('城市', fontsize=20, fontproperties=font)
    plt.ylabel('人口(万)', fontsize=20, fontproperties=font)
    plt.xticks(fontproperties=font)
    plt.yticks(fontproperties=font)
    # 可视化数据
    plt.show()

data = {'城市': ['北京', '上海', '广州', '深圳'],
        '人口': [2154, 2424, 1404, 1303]}
data_visualization(data)

如上就是可视化pandas数据时解决中文乱码问题的两种方式,你可以根据自己的需求选择其中的一种。
注意,如果你使用指定字体文件的方式,则需要将代码种的字体文件路径替换为你自己的字体文件路径。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值