文章目录

  • 0.问题的出现
  • 1.查看支持的字体
  • 2.解决title是框
    • 2.1(方法一):
    • 2.2(方法二:)
  • 3.解决title和坐标轴是框框框的问题
    • 3.1把它的代码放到kaggle上跑一下发现
    • 3.2 最后把上面那句加上,最后实现:
  • 4. 另外想说
    • 4.1.网上看到有一些教程使用
    • 4.2 遗留问题

0.问题的出现

我今天在kaggle上跑titanic的例子,发现matplotlib输出图像有问题,导出都是框框,所以怀疑是字体不对

1.查看支持的字体

import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
print(a)

结果:

['DejaVu Math TeX Gyre', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans', 'DejaVu Sans Display', 'DejaVu Sans Mono', 'DejaVu Sans Mono', 'DejaVu Sans Mono', 'DejaVu Sans Mono', 'DejaVu Serif', 'DejaVu Serif', 'DejaVu Serif', 'DejaVu Serif', 'DejaVu Serif', 'DejaVu Serif', 'DejaVu Serif', 'DejaVu Serif', 'DejaVu Serif Display', 'Droid Sans Fallback', 'Liberation Mono', 'Liberation Mono', 'Liberation Mono', 'Liberation Mono', 'Liberation Sans', 'Liberation Sans', 'Liberation Sans', 'Liberation Sans', 'Liberation Sans Narrow', 'Liberation Sans Narrow', 'Liberation Sans Narrow', 'Liberation Sans Narrow', 'Liberation Serif', 'Liberation Serif', 'Liberation Serif', 'Liberation Serif', 'Noto Mono', 'STIXGeneral', 'STIXGeneral', 'STIXGeneral', 'STIXGeneral', 'STIXNonUnicode', 'STIXNonUnicode', 'STIXNonUnicode', 'STIXNonUnicode', 'STIXSizeFiveSym', 'STIXSizeFourSym', 'STIXSizeFourSym', 'STIXSizeOneSym', 'STIXSizeOneSym', 'STIXSizeThreeSym', 'STIXSizeThreeSym', 'STIXSizeTwoSym', 'STIXSizeTwoSym', 'cmb10', 'cmex10', 'cmmi10', 'cmr10', 'cmss10', 'cmsy10', 'cmtt10']

2.解决title是框

2.1(方法一):

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['Droid Sans Fallback']# 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号

2.2(方法二:)

import pandas as pd #数据分析
import numpy as np #科学计算
from pandas import Series,DataFramedata_train = pd.read_csv("../input/titanic/train.csv")
# data_train
import matplotlib.pyplot as pltfig = plt.figure()
fig.set(alpha=0.2) # 设定图表透明度alpha参数# plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
import matplotlib.pyplot as pltmyfont = matplotlib.font_manager.FontProperties(family="Droid Sans Fallback")#同一目录下,不同目录改用绝对路径
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号plt.subplot2grid((2,3),(0,0)) # 在一张大图里分列几个小图
data_train.Survived.value_counts().plot(kind='bar')# 柱状图
plt.title("获救情况(1为获救)",fontproperties=myfont) # 标题
plt.ylabel("人数",fontproperties=myfont)

但尴尬的是上面两种办法都是坐标轴还是框啊!

3.解决title和坐标轴是框框框的问题

网上看了好久,看了一篇文章
文章地址

3.1把它的代码放到kaggle上跑一下发现

# encoding=utf-8
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
plt.rcParams['font.family'] = ['Times New Roman']
plt.rcParams.update({'font.size': 8})
x = range(11)
y = range(11)
plt.plot(x, y)
plt.show()


天惹!!正常了!那难道是我没有加上那两句

plt.rcParams['font.family'] = ['Times New Roman']
plt.rcParams.update({'font.size': 8})

3.2 最后把上面那句加上,最后实现:

import pandas as pd #数据分析
import numpy as np #科学计算
from pandas import Series,DataFrame
import matplotlib
data_train = pd.read_csv("../input/titanic/train.csv")
# data_train
import matplotlib.pyplot as pltfig = plt.figure()
fig.set(alpha=0.2) # 设定图表透明度alpha参数# plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
import matplotlib.pyplot as plt
# plt.rcParams['font.family'] = ['Droid Sans Fallback']
myfont = matplotlib.font_manager.FontProperties(family="Droid Sans Fallback")#同一目录下,不同目录改用绝对路径
# myfont = matplotlib.font_manager.fontManager(fname="cmr10.ttf")
plt.rcParams['font.family'] = ['Times New Roman']
plt.rcParams.update({'font.size': 8})
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号plt.subplot2grid((2,3),(0,0)) # 在一张大图里分列几个小图
data_train.Survived.value_counts().plot(kind='bar')# 柱状图
plt.title("获救情况 1为获救",fontproperties=myfont) # 标题
plt.ylabel("人数",fontproperties=myfont)
# plt.xlabel("人数",fontproperties=myfont)  

最后输出:

4. 另外想说

4.1.网上看到有一些教程使用

myfont = matplotlib.font_manager.FontProperties(fname="Droid Sans Fallback.ttf")

会报错:FileNotFoundError: [Errno 2] No such file or directory: ‘Droid Sans Fallback.ttf’
如果您知道怎么解决,欢迎给我留言~~

4.2 遗留问题

虽然说还有一个框,但是不想管了。== 这个真的解决了好久~ 如果有用!给我转发评论点赞蟹蟹~

(python3)kaggle上matplotlib显示不了中文(title是框,坐标也是框)完全解决.md相关推荐

  1. python微软雅黑字体_win10+python3.7下matplotlib显示中文,可使用微软雅黑.md

    win10+python3.7下matplotlib显示中文,可使用微软雅黑和思源黑体 更新时间20200109 网上很多教程,基本上都没用有效解决win10下matplotlib显示中文雅黑的问题, ...

  2. 矩池云上matplotlib显示中文乱码

    下载字体 https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/SourceHanSansSC.zip 命令可以是 cd /wg ...

  3. [python][转载]ubuntu上matplotlib显示中文

    import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProper ...

  4. python3.7语法错误_Tweepy不会安装在Python3.7上;显示“语法错误”

    在开始之前,我想先说一下,我对python比较陌生,在我的这个小项目之前,我不需要经常使用它.我想把一个twitter机器人作为一个艺术项目的一部分,但我似乎无法让tweepy进口.我使用的是macO ...

  5. Mac系统中移动硬盘热拔(强制退出)后,在插上不显示移动硬盘的问题和解决办法

    Mac系统中移动硬盘热拔(强制退出)后,在插上不显示移动硬盘的问题和解决办法 一.问题描述: 好久没有写博客了,被调研和开题的事情折磨得好久没有写日志和学编程了,现在又到了校招的时间,自己基础好差,感 ...

  6. 解决linux服务器上matplotlib中文显示乱码问题

    解决linux服务器上matplotlib中文显示乱码问题 参考文章: (1)解决linux服务器上matplotlib中文显示乱码问题 (2)https://www.cnblogs.com/Bell ...

  7. 解决使用matplotlib.pyplot画图包含中文乱码显示问题(macbook上 family ‘sans-serif‘ not found 问题)

    一.matplotlib画图中文乱码问题 使用matplotlib.pyplot画图,有中文字体会显示乱码问题,这时需要添加如下代码: import matplotlib.pyplot as plt ...

  8. python2.x和python3.x-matplotlib中文显示为方块-中文不显示-故障原理研究与解决

    matplot的字体问题,有以下3种方式 一种是从pylab中进行全局管理,可以管理任意实验相关的字体,可以是和matplot无关的实验的字体问题的管理 一种是matplot的配置文件,进行全局管理 ...

  9. Glyph 26426 missing from current font. matplotlib显示中文乱码解决

    网上关于这个问题的帖子也不少,但按照他们的方法尝试后,仍然解决不了我的问题.痛定思痛,花了一天时间看了不少matplotlib底层源码,终于把这个问题解决了.后来发现网上的很多方法真的是"多 ...

最新文章

  1. 发送延迟消息_微信延迟消息的发送方式
  2. java的静态内部类
  3. 让大家都成为电脑高手之二------运行_r篇
  4. ajax调用后台java类_ajax调用java后台方法是什么
  5. vs2010创建和使用动态链接库(dll)
  6. Vue3.x 使用ref和reactive、toRef
  7. c语言不定方程的二元一次,poj1061 - 同余方程,二元一次不定方程
  8. 程序员都在用的IDEA插件(不断更新)
  9. JAVA动态加载JAR包执行程序
  10. CPU频率调节模式以及降频方法简介
  11. U盘文件丢失了怎么办?一串英文字符即可快速帮你找回,秒学!
  12. C语言——医院挂号系统(队列)
  13. 【网络安全01】网络安全引言(网络安全概述、计算机安全、OSI安全体系、网络安全模型)
  14. C++的time_t 和 struct tm 类型【s
  15. EventBus、Rxjava、RxBus的定义、作用、使用方式及区别
  16. 龚胤全云栖大会_2018云栖大会
  17. 手机如何扫描图片转换成word
  18. Python requests爬虫实例
  19. 译密码:按规律将字母变成其后的第四个字母
  20. Android+iOS自动化基于appium环境搭建

热门文章

  1. Java 多个List合并
  2. 达梦数据库SQL调优,查看执行计划、ET
  3. 海贼OJ并查集练习题:朋友圈
  4. SVFX 错误及问题详解--adding
  5. Spring容器初始化完成后执行业务逻辑的三种方式
  6. C# SQLite数据库的帮助类
  7. @所有人 | 万众瞩目的2021SHD超级街舞梦想营来了!-莆田站回顾
  8. wps文档怎样添加表格
  9. Linux 网络编程 TCP
  10. 七夕节快到了,教你用MATLAB绘制blingbling的大钻石