我的Python心路历程 第十期 (10.9 股票实战可视化之编译错误`UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in posi

博客讲述了在Python数据可视化过程中遇到的UnicodeDecodeError问题,以及如何通过设置字体配置来解决这个问题。作者提供了修改后的代码示例,强调了在中文字符前加u前缀的重要性,并分享了一个测试中文显示的函数。参考了股票实战之数据可视化的经验分享。
摘要由CSDN通过智能技术生成

背景

今日我的Python心路历程是 股票实战可视化之编译错误UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 3: ordinal not in range(128)

分析

plt图中显示中文是常见用法,但似乎调试起来没那么容易呢。见初始代码:

    #展示效果设置
    plt.figure('SNS图例', figsize=(18, 5))

编译错误UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 3: ordinal not in range(128)

调试编译时截图如下:
在这里插入图片描述

方案

首先,增加字体配置后的代码如下:

#字体配置
from pylab import *
from matplotlib.font_manager import FontProperties
#定义字体属性
font = FontProperties(fname=r"/System/Library/AssetsV2/com_apple_MobileAsset_Font6/4c66b413a81d594dc2fc430266c1629c30a5237b.asset/AssetData/STFANGSO.ttf", size=14)  # “”里面为字体的相对地址 或者绝对地址

......

#测试中文
def testChinese():

    plt.figure()
    plt.xlabel(u"横坐标名称", fontproperties=font)
    plt.ylabel(u"纵坐标名称", fontproperties=font)
    plt.title(u"题目", fontproperties=font)
    plt.plot([1,2,6,4], [4,5,6,9])
    plt.show()
    return

需要说明的是,中文字符前要加u的前缀,否则也会编译报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)

参考:
1、我的Python心路历程 第十期 (10.6 股票实战之数据可视化中文显示问题)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值