精华内容
下载资源
问答
  • 文章目录Linux Ubuntu 16.04 Python matplotlib安装中文字体,Times New Roman等一、用apt-get工具安装Times New Roman字体,即安装ttf-mscorefonts-installer,但此字体包,不包括楷体,黑体等。...

    Linux Ubuntu 16.04 Python matplotlib安装中文字体,Times New Roman等


    当我们在Ubuntu Linux下使用Python matplotlib画图时,会发现不能用Times New Roman,楷体,黑体等Windows上常用的字体,尤其是用中文显示图标签时,会出现小方框/块,这是因为Linux下本身不自带这些常用字体(因为版权原因)。因此需要我们自己动手装,本人查找了了网上好多篇用时一天,,总之一言难尽,最后终于整好了。记录下了特别详细了的步骤,以供需要之人参考。绝对可靠。

    一、用apt-get工具安装Times New Roman字体,即安装ttf-mscorefonts-installer,但此字体包,不包括楷体,黑体等。

    如果只需用Times New Roman字体,可以参见本人此篇博客。 Ubuntu下安装Times New Roman字体.

    二、将Windows下的黑体,楷体等安装到Ubuntu及matplotlib下。

    上面提到mscorefonts这个字体包里不包含楷体黑体等,因此需要将Windows下的字体安装到Ubuntu下。下面以安装黑体为例,讲解具体步骤,学会一种,其它字体一样。

    首先在Windows下,进入C:\Windows\Fonts目录,找到你想要的字体,即黑体,拷贝到一个新建文件夹,如本人命名的winfonts。如下两图
    图1
    在这里插入图片描述

    三、将上面拷贝的字体上传到Ubuntu系统(注意Linux系统权限问题

    本人用的Xshell和Xftp。在这一步,一直在上传到Ubuntu时,不成功,终于想到是权限问题。如下图,提示权限不够,第一次碰到Xftp上传不成功。。。正好Xftp5还强制更新,还以为这软件不更新用不了上传功能了,不过因为这次上传问题,让我发现要注意到Linux普通用户是不能改动根目录下文件夹,会提示权限不够。如下图,失败case。
    在这里插入图片描述
    这种情况,就是你直接把Windows下文件拷贝到Ubuntu虚拟机的/usr/share/fonts目录时,权限不够。查看/usr/share/fonts的权限如下
    在这里插入图片描述
    可以看到,普通用户是无法向这个目录写入文件的。因此我用su root命令切换到超级用户,发现竟然还是这个错误,不清楚为什么,各位博友,有清楚的请在评论中指出。但是,问题总会有多种方法解决的。不能直接上传到根目录下,那就先上传到普通用户下吧,也就是本人的家目录。如下图,在这里插入图片描述
    可以看到终于成功了,很欣慰。。。
    在这里插入图片描述
    此时就好办了,切换到root用户将其拷贝到/usr/share/fonts目录下即可,有三种方式,
    1)第一种两行代码
    sudo -i #或者用su root,都是切换到root用户
    cp -rf /home/rain/winfonts/ /usr/share/fonts
    2)第二种一行代码,不用切换到root用户
    sudo cp -rf winfonts/ /usr/share/fonts
    3)第三种就是用户界面方式操作,就是用root权限打开一个文件管理器窗口,这种就跟Windows操作一样了,直接赋值粘贴即可。
    sudo nautilus

    到这里,我们终于把文件拷贝到/usr/share/fonts目录下了。如下图,
    在这里插入图片描述

    四、刷新Ubuntu系统字体缓存,和matplotlib字体缓存(matplotlib的字体缓存也要刷新,matplotlib才能用,重要)

    这一步该刷新字体缓存了。首先在Ubuntu上打开LibreOffice,看一下字体里是没有黑体的,如下图
    在这里插入图片描述
    没装没刷新之前当然没有了!!
    现在来用命令
    sudo fc-cache -f -v
    刷新Ubuntu字体缓存。如下图可以看到在我们的目录/usr/share/fonts/winfonts中找到一种新字体,就是咱们要安装的黑体啊!!!
    在这里插入图片描述
    然后重新打开libreoffice,见证奇迹的时刻!!!
    在这里插入图片描述
    我们的黑体终于能用了!!!到这里,你会发现你想用其它的楷体,宋体,都可以按上面步骤安装了。我在网上查到诸多博客,好多都。。。你们懂得,我用时一天终于自己摸索出来,特此记下来。希望对看到的你有所帮助。我们整理东西一定要自己验证过,要把重要细节写完美,否则,发到网上的都是垃圾内容。
    在这里插入图片描述

    五、接下来就是,刷新matplotlib字体缓存了。

    首先看问题,如果在Ubuntu Linux下用matplotlib画图,如果没有安装中文字体。在中文处则显示乱码小方块。如下图
    在这里插入图片描述
    因此,我们要先安装中文字体,步骤就是上面。但是经过刚刚明明看到我们已经安装黑体,但是为什么还是显示乱码小方块呢。就是没有刷新matplotlib的字体缓存了。首先打开一个Python环境,找到matplotlib字体缓存目录。如下代码:
    import matplotlib as plt
    plt.get_cachedir()
    本人机器上操作的如下图,
    在这里插入图片描述
    直接用如下命令
    rm -rf /home/rain/.cache/matplotlib
    删除这个缓存目录就可以了。如下图
    在这里插入图片描述
    接着在运行一下刚才的画图程序,见证奇迹的时刻到了!!!如下图
    在这里插入图片描述
    在这里插入图片描述
    到这里,终于解决Ubuntu上Python matplotlib画图,用中文字体,simhei,times new roman的问题了。

    六、但是,我发现竟然用楷体的时候有个问题

    当在.py文件中用楷体时竟然还是小方块???明明libreoffice里面已经可以用了。难道是引用字体名不对?如下图:
    在这里插入图片描述
    在这里插入图片描述
    看来的SimKai这个名字不对了,可以用如下命令看一下楷体的引用名是什么:
    import matplotlib as plt
    import matplotlib.font_manager as font_manager
    fontpath = '/usr/share/fonts/truetype/msttcorefonts/simkai.ttf'
    prop = font_manager.FontProperties(fname=fontpath)
    print(prop.get_name())
    结果如下图,竟然叫‘KaiTi’而不是‘SimKai’????
    在这里插入图片描述
    在.py文件中更证名字,然后又到了见证奇迹的时刻!!如下图
    在这里插入图片描述
    在这里插入图片描述
    到这里你终于学到如果解决Ubuntu Python matplotlib画图中所以字体问题了,真是百转千折,但是你也深入了解了Linux许多原理,对于需要经常用Linux的你还是非常有帮助,如果你只需要用Python做机器学习换图,建议还是用windows+Anaconda+PyCharm+Notebook吧,不会遇到这么多配置问题,实力劝退一波哈哈。


    七、参考文献

    [1] https://blog.csdn.net/u014712482/article/details/80568540
    [2] https://www.zhihu.com/question/25404709

    展开全文
  • Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif 解决方式二:在代码中修改 import matplotlib 指定默认字体 matplotlib.rcParams[‘font.sans-serif’] ...

    解决方式一:修改配置文件

    (1)找到matplotlibrc文件(搜索一下就可以找到了)

    (2)修改:font.serif和font.sans-serif,我的在205,206行

    font.serif: SimHei, Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif

    font.sans-serif: SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

    解决方式二:在代码中修改

    import matplotlib

    指定默认字体

    matplotlib.rcParams[‘font.sans-serif’] = [‘SimHei’]

    matplotlib.rcParams[‘font.family’]=’sans-serif’

    解决负号’-‘显示为方块的问题

    matplotlib.rcParams[‘axes.unicode_minus’] = False

    展开全文
  • Python绘图问题:Matplotlib中%matplotlib inline是什么、如何使用? %matplotlib inline 是一个魔法函数(Magic Functions)。官方给出的定义是:IPython有一组预先定义好的所谓的魔法函数(Magic Functions...

    Python绘图问题:Matplotlib中%matplotlib inline是什么、如何使用?

     

    %matplotlib inline

    是一个魔法函数(Magic Functions)。官方给出的定义是:IPython有一组预先定义好的所谓的魔法函数(Magic Functions),你可以通过命令行的语法形式来访问它们。可见“%matplotlib inline”就是模仿命令行来访问magic函数的在IPython中独有的形式。

    magic函数分两种:一种是面向行的,另一种是面向单元型的。

    行magic函数是用前缀“%”标注的,很像我们在系统中使用命令行时的形式,例如在Mac中就是你的用户名后面跟着“$”。“%”后面就是magic函数的参数了,但是它的参数是没有被写在括号或者引号中来传值的。

    单元型magic函数是由两个“%%”做前缀的,它的参数不仅是当前“%%”行后面的内容,也包括了在当前行以下的行。

    注意:既然是IPython的内置magic函数,那么在Pycharm中是不会支持的。

    #内嵌画图
    %matplotlib inline
    import matplotlib # 注意这个也要import一次
    import matplotlib.pyplot as plt
    myfont = matplotlib.font_manager.FontProperties(fname=r'C:/Windows/Fonts/msyh.ttf') # 这一行
    plt.plot((1,2,3),(4,3,-1))
    plt.xlabel(u'横坐标',  fontproperties=myfont) # 这一段
    plt.ylabel(u'纵坐标',  fontproperties=myfont) # 这一段
    #plt.show() # 有了%matplotlib inline 就可以省掉plt.show()了

    这里写图片描述

    总结:%matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步

    %matplotlib inline的含义

      用在Jupyter notebook中具体作用是当调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。效果如下:

      不加%matplotlib inline效果:

       加上%matplotlib inline效果:

    标签: Jupyter-notebookmatplotlib

    展开全文
  • Python-matplotlib-中文字体显示和设置

    万次阅读 多人点赞 2019-01-11 15:12:13
    matplotlib绘图过程中,中文的标题或者轴标中如果含有中文,会出现不能正常显示的问题。 本文主要介绍在Windows系统下,matplotlib库中的中文字体显示方法和相关配置。   1.全局设置 #!/usr/bin/python # -*...

    0.摘要

    在matplotlib绘图过程中,中文的标题或者轴标中如果含有中文,会出现不能正常显示的问题。

    本文主要介绍在Windows系统下,matplotlib库中的中文字体显示方法和相关配置。

     

    1.全局设置

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    
    x = np.linspace(-10,10,200)
    y = x
    plt.plot(x,y)
    
    # 设置matplotlib正常显示中文和负号
    matplotlib.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
    matplotlib.rcParams['axes.unicode_minus']=False     # 正常显示负号
    
    plt.xlabel("横轴/单位")
    plt.ylabel("纵轴/单位")
    plt.title("标题")
    plt.show()

    该方法具有全局作用范围,会将所有字体设置为黑体。因此,如果不加入下面这一句,会导致负号无法显示:

    matplotlib.rcParams['axes.unicode_minus']=False

     

    2.局部设置

    如果希望对图表中不同部分采用个性化的设置方案,可以使用FontProperties设置方法。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    from matplotlib.font_manager import FontProperties
    
    x = np.linspace(-10,10,200)
    y = x
    plt.plot(x,y)
    
    font1 = FontProperties(fname=r"c:\windows\fonts\simsun.ttc")
    font2 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")
    font3 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")
    
    plt.xlabel("横轴/单位",fontproperties=font1)
    plt.ylabel("纵轴/单位",fontproperties=font2)
    plt.title("标题",fontproperties=font3)
    plt.show()

    这里的字体来自于系统,因此字体形式更加丰富,但是需要找到字体存放的路径,Windows下的默认路径为:C:\Windows\Fonts。由于Windows的文件系统并不区分大小写,因此这里对大小写问题不需要过多留意。

    这里介绍一下Windows系统字体名称的查看方法:

    step1:进入目录C:\Windows\Fonts

    step2:点击相应字体-->属性

     

    3.通过fontproperties参数设定

    上一种方法虽然能够实现个性化的配置,并且不会影响全局字体环境,但配置步骤相对繁琐,这里介绍一种更为简单的方法:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    from matplotlib.font_manager import FontProperties
    
    x = np.linspace(-10,10,200)
    y = x
    plt.plot(x,y)
    
    plt.xlabel("横轴/单位",fontproperties="STLiti")
    plt.ylabel("纵轴/单位",fontproperties="STXingkai")
    plt.title("标题",fontproperties="STXinwei")
    plt.show()
    
    matplotlib.matplotlib_fname()

    其中,fontproperties后跟字体名称,字体中英文名称对应关系见下表:

    字体字体名
    黑体SimHei
    楷体KaiTi
    隶书LiSu
    幼圆YouYuan
    华文细黑STXihei
    华文楷体STKaiti
    华文宋体STSong
    华文中宋STZhongsong
    华文仿宋STFangsong
    方正舒体FZShuTi
    方正姚体FZYaoti
    华文彩云STCaiyun
    华文琥珀STHupo
    华文隶书STLiti
    华文行楷STXingkai
    华文新魏STXinwei

     

    展开全文
  • 这里写自定义目录标题关于Python Matplotlib如何显示中文关于如何得到字体的名称在Python中绘图时使用中文 关于Python Matplotlib如何显示中文 环境:Windows + Anaconda 一劳永逸的办法: 打开你的Anaconda...
  • Matplotlib - 中文字体

    2020-08-10 13:22:19
    title: Matplotlib - 中文字体 categories: ...使用思源黑体,思源黑体是 Adobe 与 Google 推出的一款开源字体。 下载地址: 官网:https://source.typekit.com/source-han-serif/cn/ Github地址:https:/.
  • E:\software\anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc 打开, 找到 font.sans-serif 删掉注释,添加即可 重新启动 jupyter notebook即可 在新开启的文件中输入,就可以正常显示汉字 ...
  • 中文字体的(黑体) 找到matplotlib配置文件目录 In [12]: import matplotlib In [13]: matplotlib.matplotlib_fname() Out[13]: 'D:\\Anaconda\\lib\\site-packages\\matplotlib\\mpl-data\\mat
  • Matplotlib基本参数设置

    2021-06-05 17:05:35
    中文支持相关设置 (1)中文字体设置 font.family 字体的名称 SimHei 中文黑体 FangSong 中文仿宋 STSong 华文宋体 Kaiti 中文楷体 LiSu 中文隶书 代码如下: mpl.rcParams["font.family"] = "SimHei" (2)"-"(负号...
  • matplotlib中设置中文标题 matplotlib库中默认使用的字体是不支持中文的,所以如果需要中文的标签或标题则我们手动去重新设置一个支持中文格式的字体。因为之前我在设置的时候犯了一个很蠢的问题,但是也可能是很...
  • Python Mac电脑上如何安装matplotlib

    千次阅读 2020-02-16 10:44:49
    Mac电脑上如何安装matplotlib sudo vi /usr/local/bin/pip 这时打开了pip文件,修改 from pip import main if __name__ == '__main__': sys.exit(main()) 为 from pip import __main__ //修改 if __name__ == '_...
  • MacOS下matplotlib画图添加中文字体支持 欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • Matplotlib的基本使用

    2021-01-23 10:06:12
    应用Matplotlib的基本功能实现图形显示 应用Matplotlib实现多图显示 应用Matplotlib实现不同画图种类 1. Matplotlib之HelloWorld 1.1 什么是Matplotlib 是专门用于开发2D图表(包括3D图表) 以渐进、交互式方式...
  • 一、matplotlib介绍 matplotlib是python从matlab继承的绘图库,可以满足大部分的日常使用,是目前最流行的底层绘图库。 二、matplotlib的使用 (一)导入模块【中文显示】 显示中文方面mac和windows根据自己电脑系统...
  • Matplotlib 是 Python 的一个2D绘图库,可以帮助我们绘制各种图形,下面介绍一些最常见的数学图形绘制方法。1.直线图importnumpy as npimportmatplotlib.pyplot as pltx= np.arange(1,6)y= 2 *xplt.title("LineGraph...
  • python Matplotlib库的介绍和使用

    千次阅读 2020-12-18 13:23:17
    Matplotlib是一款可以数据可视化的库。由各种可视化的类构成。 matplotlib.pyplot是绘制各类可视化图形的命令子库。 通常别名为plt 命令如import matplotlib.pyplot as plt Matplotlib通常和Numpy结合使用。 ...
  • matplotlib绘图

    2019-05-28 19:44:53
    字体必须已安装) import matplotlib.pyplot as plt plt.xlabel("x轴") plt.ylabel("y轴", fontproperties="SimSun") # 步骤一 (宋体) plt.title("标题", fontproperties="SimHei") # (黑体) plt.show() 3....
  • Python中的Matplotlib

    2020-12-08 12:21:25
    编辑推荐:本文讲了Matplotlib,plot绘图函数,子绘图区域,pyplot基础图表函数概述,饼图绘制,希望对大家有帮助。本文来自于pianshen,由火龙果软件Delores编辑,推荐。MatplotlibMatplotlib由大量可视化库组成...
  • Matplotlib是一个Python 绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成绘图,...
  • matplotlib基本知识

    2021-01-21 19:36:25
    matplotlib基本知识 Matplotlib库的效果链接: http://matplotlib.org/gallery.html 1. 折线图 案例一 假设一天中每隔两个小时(range(2,26,2))的气温(℃)为 [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15] from...
  • matplotlib 中设置中文字体

    千次阅读 2019-09-30 00:49:16
    matplotlib 中设置中文字体问题:使用黑体,系统警告,中文显示为方块代码异常信息原因解决办法扩展:事后发现有更方便的方法,在matplotlib配置文件中能够设置默认的字体 问题:使用黑体,系统警告,中文显示为方块...
  • 目录标题Matplotlib介绍什么是Matplotlib为什么要学习Matplotlib实现一个简单的Matplotlib画图认识Matplotlib图像结构拓展知识点:Matplotlib三层结构Matplotlib实操之折线图(plot)与基础绘图功能折线图绘制与保存...
  • matplotlib

    2019-09-30 02:42:43
    matplotlib import matplotlib.pyplot as plt 是专门用于开发2D图表(包括3D图表) 使用起来及其简单 以渐进、交互式方式实现数据可视化 可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解...下载中文字体(黑体...
  • 使用matplotlib绘制折线图,柱状图,柱线混合图

    万次阅读 多人点赞 2019-08-31 21:54:49
    matplotlib介绍 Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。 安装Matplotlib库命令:在cmd命令窗口...
  • Matplotlib库的介绍及pyplot子库的使用 Matplotlib是一个综合库,用于在Python中创建静态,动画和交互式可视化。 Matplotlib库的效果:https://matplotlib.org/gallery.html Matplotlib库由各种可视化类构成,内部...
  • normed=1,表示归一化,显示频率 5.2实例 import numpy as np import matplotlib.pyplot as plt # 设置Matplotlib正常显示中文和负号 plt.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文 plt.rcParams['...
  • python matplotlib各种绘图类型完整总结

    万次阅读 多人点赞 2019-10-02 10:47:54
    Matplotlib图像基础1.1 __基本绘图实例:sin、cos函数图__1.2 plot()函数详解1.3 __matplotlib中绘图的默认配置__1.4 __设置图的横纵坐标的上下界:__1.5 __设置横纵坐标上的记号__1.6 __调整图像的脊柱__1.7 添加...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,731
精华内容 1,092
关键字:

matplotlib黑体