【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.mfbz.cn/a/2751.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux指南】Vim的全面解析与深度应用

引言 在Linux的命令行宇宙中,Vim如同一位全能的工匠,以独特的模式化操作和高度定制化能力,成为开发者与运维人员不可或缺的工具。从基础的文本编辑到复杂的代码开发,Vim通过灵活切换的多种模式,将每一个按键转化为高效…

Excel版经纬度和百分度互转v1.1

很多童鞋在工作中经常需要用到坐标,其中百分度和度分秒的转换常常需要依赖各种软件,但这些软件往往不如excel表格方便,因此本人开发了一个依据vba的度分秒和百分度转换表格,这个表格基于office2010开发,非常简单&#…

计算机网络:如何理解目的网络不再是一个完整的分类网络

这一理解主要源于无分类域间路由(CIDR)技术的广泛应用,它打破了传统的基于类的IP地址分配方式。具体可从以下方面理解: 传统分类网络的局限性:在早期互联网中,IP地址被分为A、B、C等固定类别,每…

FFmpeg实现音视频转码

以下是基于 FFmpeg 库实现 MP4 转码的详细步骤(以 C 语言为例): 一、环境准备 集成 FFmpeg 库 编译 FFmpeg 生成动态库(avformat、avcodec、avutil、swscale、swresample等) 在 SDK 项目中配置头文件路径和库文件链接…

09 【C++ 初阶】C/C++内存管理

文章目录前言1. C/C内存分布2. C语言中动态内存管理方式malloc:calloc:realloc:free:3. C内存管理方式3.1 定位new表达式(placement-new)3.2 new/delete3.2.1 new和delete操作自定义类型3.2.2 new和delete操作内置类型3.2.3 new和…

Datawhale+AI夏令营_让AI读懂财报PDF task2深入赛题笔记

1.深入理解baseline方案 1.1 赛题任务 项目背景 本次赛题的核心目标是打造一个能看懂图片、读懂文字、并将两者关联起来思考的AI助手,构建一个先进的智能问答系统,以应对真实世界中复杂的、图文混排的信息环境。 (1)让AI模型能够阅读并理解包含大量图标、…

OpenAI开源大模型 GPT-OSS 开放权重语言模型解析:技术特性、部署应用及产业影响

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)【陈敬雷编著】【清华大学出版社】 清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷…

前端懒加载技术全面解析

懒加载(Lazy Loading)是一种优化前端性能的重要技术,核心思想是延迟加载非关键资源,只在需要时加载它们。 一、懒加载的基本原理 懒加载的核心思想是通过以下方式优化性能: 减少初始加载实践: 只加载首屏所需资源 节省带宽和内存: 避免加载用户可能不会查看的内容 提高…

【渲染流水线】[几何阶段]-[图元装配]以UnityURP为例

【从UnityURP开始探索游戏渲染】专栏-直达 前情提要 【渲染流水线】主线索引-从数据到图像以UnityURP为例-CSDN博客 图元装配负责将离散顶点组装成完整几何图元(如点、线、三角形、三角形条带) (对渲染的探索是个持续不断完善的过程&#x…

Vue3的简单学习

一、创建应用(createApp)Vue3 中通过 createApp 函数创建应用实例,替代了 Vue2 的 new Vue()。知识点:createApp(App) 创建应用实例,mount(#app) 挂载到 DOM。应用实例可链式调用配置(如全局组件、指令等&a…

v-model双向绑定指令

文章目录前言v-model.lazy 延迟同步v-model.trim 去掉空格前言 v-model指令是Vue.js中实现双向数据绑定的一种重要机制。它可以将表单控件的值与Vue.js实例中的数据进行双向绑定,即当表单控件的值发生变化时,Vue.js实例中的数据也会随之更新&#xff0c…

使用Prometheus + Grafana + node_exporter实现Linux服务器性能监控

监控与告警系统部署:项目示例: "使用Prometheus Grafana node_exporter实现Linux服务器性能监控"描述: 在目标服务器部署node_exporter采集系统指标(CPU, 内存, 磁盘, 网络)。部署配置Prometheus Server,抓取node_exporter数据。部署配置Gra…