当前位置: 首页 > news >正文

【Matplotlib】中文显示问题

中文显示问题

本地Mac上作图,可以方便地实现中文字体显示。比如在Jupter中,通过:

方法一:不下载字体库即可实现中文显示 (MAC)

plt.rcParams['font.family']=['Arial Unicode MS']

方法二:下载指定字体训即可实现中文显示

plt.rcParams['font.sans-serif'] = 'SimHei'

该方法需确保SimHei.ttf字体文件存在于:anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf

对于Linux系运行python代码的画图脚本,则需要一些额外的配置。在此记录详细过程及细节提示,以供后续参考。

1.若安装字体:

# Matplotlib中设置字体-黑体,解决Matplotlib中文乱码问题
# 解决Matplotlib坐标轴负号'-'显示为方块的问题plt.rcParams['font.sans-serif']=['SimHei']  
plt.rcParams['axes.unicode_minus']=False    

另外seaborn

sns.set(font='SimHei')  # Seaborn中设置字体-黑体,解决Seaborn中文乱码问题

  1. 若未安装字体
    a.下载simhei.tff
    b.查看位置
import matplotlib
print(matplotlib.matplotlib_fname())
/Users/bayes/anaconda3/envs/Env_3.6/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
cp ./simhei.ttf /Users/bayes/anaconda3/envs/Env_3.6/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf

c.修改配置

vi /Users/bayes/anaconda3/envs/Env_3.6/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
font.family         : sans-serif
#去掉前面的#
font.sans-serif     : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
#去掉前面的#,并在冒号后面添加SimHei
axes.unicode_minus  : False
#去掉前面的#,并将True改为False

d.缓存位置

matplotlib.get_cachedir()
'/Users/bayes/.matplotlib'
rm -rf /Users/bayes/.matplotlib

e.重启

3.各种字体大小

import matplotlib.pyplot as plt
SMALL_SIZE = 8
MEDIUM_SIZE = 10
BIGGER_SIZE = 12
plt.rc('font', size=SMALL_SIZE)          # controls default text sizes
plt.rc('axes', titlesize=SMALL_SIZE)     # fontsize of the axes title
plt.rc('axes', labelsize=MEDIUM_SIZE)    # fontsize of the x and y labels
plt.rc('xtick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('ytick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('legend', fontsize=SMALL_SIZE)    # legend fontsize
plt.rc('figure', titlesize=BIGGER_SIZE)  # fontsize of the figure title

http://www.lryc.cn/news/615768.html

相关文章:

  • 【论文阅读】Deep Adversarial Multi-view Clustering Network
  • Docker 镜像常见标签(如 `标准`、`slim`、`alpine` 和 `noble`)详细对比
  • 随想记——excel报表
  • Linux下的软件编程——标准IO
  • 编程基础之多维数组——矩阵交换行
  • `sk_buff` 结构体详解(包含全生命周期解析)
  • 如何回收内存对象,有哪些回收算法?
  • XML 指南
  • LeetCode_字符串
  • Jenkins | 账号及权限管理
  • Pytorch深度学习框架实战教程-番外篇02-Pytorch池化层概念定义、工作原理和作用
  • 怎么能更好的降低论文AI率呢?
  • 分布微服务电商订单系统Rust编码开发[下]
  • SpringBoot学习日记(三)
  • 【C++/STL】list模拟实现和迭代器失效问题
  • 基于 RabbitMQ 死信队列+TTL 实现延迟消息+延迟插件基本使用
  • 十、Linux Shell脚本:流程控制语句
  • [Julia] LinearAlgebra.jl 自带包
  • LeetCode 刷题【37. 解数独】
  • LabVIEW 机器人避障控制
  • 企业架构之导论(1)
  • C++设计模式单例模式(饿汉、懒汉模式)
  • Linux操作系统从入门到实战(十六)冯诺依曼体系结构,操作系统与系统调用和库函数概念
  • 【软件测试】BUG篇 — 详解
  • AI测试助手如何让Bug无处可藏
  • uni-app 网络请求终极选型:uni.request、axios、uni-network、alova 谁才是你的真命请求库?
  • Eclipse JSP/Servlet:深入解析与最佳实践
  • 繁花深处:花店建设的时代意义与多元应用—仙盟创梦IDE
  • 计算机视觉全景指南:从OpenCV预处理到YOLOv8实战,解锁多模态AI时代(第五章)
  • 【Docker进阶实战】从多容器编排到集群部署