Windows下的matplotlib画图中文显示设置

一、在测试matplotlib时遇到X轴中文字符不显示的问题,参考网上

源代码如下

from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager

# my_font =  {‘family‘ : ‘MicroSoft YaHei‘,
#               ‘weight‘ : ‘bold‘,
#               ‘size‘   : ‘larger‘}
# matplotlib.rc("font",**my_font)
# matplotlib.rc("font",)
my_font = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\msyh.ttf")

plt.figure(figsize=(20,8),dpi=80)

x = range(0,120)
y = [random.randint(20,35) for i in range(120)]

_xticks_labels = ["10点{}分".format(i) for i in range(60)]
_xticks_labels += ["11点{}分".format(i) for i in range(60)]
# plt.xticks(list(x)[::3])
plt.xticks(list(x)[::3],_xticks_labels[::3],rotation=45,fontproperties=my_font)
plt.plot(x,y)
plt.show()

二、参考网上玩法

电脑环境:Windows7-64bit,Anaconda3-4.2.0(对应python 3.5.2版本),IDE是Anaconda自带的Spyder 3。

1、找到Windows系统自带的字体库目录,默认在C:\Windows\Fonts目录下。

2、选择你自己喜欢的字体,然后“右键”→“属性”,可以看到该字体的名字。

本教程以微软雅黑字体为例,您也可以选择其他字体,如果自带的字体库满足不了您的需求,您可以网上下载其他字体,将字体解压到C:\Windows\Fonts目录即可。

3、在IDE工具中,导入matplotlib库,开始定义字体所在路径。

  • 1 先不设置参数,可以看到中文字体显示为方框(此处使用的是SVC三分类模型)。

  • 2 设置参数之后,可以看到中文字体可以正常显示了。(代码经过测试,可放心使用)

哪里需要中文设置,保证该函数里有fontproperties = my_font参数即可。比如x轴的标签为:鸢尾花的花萼长度。那么可以使用:

plt.xlabel(‘鸢尾花的花萼长度‘, fontproperties = my_font)

# coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets

# 以下两行是解决常见的其他问题
plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘]                          # 指定默认字体
plt.rcParams[‘axes.unicode_minus‘] = False                            # 解决保存图像是负号‘-‘显示为方块的问题

import matplotlib.font_manager as mf                                  # 导入字体管理器
my_font= mf.FontProperties(fname=‘C:\\Windows\\Fonts\\msyh.ttf‘)      # 加载字体

iris = datasets.load_iris()
X = iris.data[:, :2]
Y = iris.target

def my_kernel(X, Y):
    M = np.array([[2, 0], [0, 1.0]])
    return np.dot(np.dot(X, M), Y.T)

h = 0.02  

clf = svm.SVC(kernel = my_kernel)
clf.fit(X, Y)

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])

Z = Z.reshape(xx.shape)
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)

plt.scatter(X[:, 0], X[:, 1], c=Y, cmap=plt.cm.Paired)
plt.title(‘测试!!!3-Class classification using SVM with custom kernel‘,
          fontproperties = my_font)
plt.axis(‘tight‘)
plt.show()

原文地址:https://www.cnblogs.com/di2wu/p/10203258.html

时间: 2024-11-06 07:44:42

Windows下的matplotlib画图中文显示设置的相关文章

windows下Python打开包含中文路径名文件

windows使用gbx(gb2312,gbk,gb18030我也不知道是哪个)对文件名及文件路径进行编码保存.打开文件的函数中使用诸如open(filename.encode('gbk'))可以很好的解决. #coding:utf8 if __name__ == '__main__': srcfile = r"D:/测试路径/测试文件.txt" f = open(srcfile.decode('utf8').encode('gbk')) for text in f.readlines

ubuntu下matplotlib画图中文乱码问题

最近因为论文原因在学习机器学习,看的一本叫做<机器学习实战>的书,看了看还是不错的,因为其中既有原理又有实例.今天载使用matplotlib进行画图时,发现中文会显示为小方块,这个问题真是神烦,折腾了一下午,终于搞定了,下面记录一下我解决的过程. 1. 查看matplotlib支持的中文字体 用python运行以下代码: #! /usr/bin/env python # -*- coding: utf-8 -*- from matplotlib.font_manager import Font

关于windows下程序开发的中文乱码问题小结

笔者遇到的问题背景: windows 下使用notepad++6.7 ,ftp连接远程ubuntu主机,在本地创建远程主机文件,编辑后上传出现中文乱码. 笔者最开始不明白问题出在哪,因为设置了在notepad++中默认使用UTF-8编码格式进行新建文件,但依旧无效. 笔者一步步探索问题: 新建一个文件,写入纯英文html文本后上传至ubuntu主机,vi :set fileencoding显示此时为utf-8编码 上述文件新增几个中文,保存后上传至ubuntu主机,这个时候提示fileencod

Python 在Windows下安装matplotlib

windows下安装很麻烦,使用easy_install 安装报错  提示缺少freetype 和png 后经多方查询,最终安装成功 以下是安装过程 前提你的Python环境已经搭建好了 1.前提需要安装numpy 2.Matplotlib的安装 这个你既可以在官网中找到Download页面下载,也可以直接在Sourceforge上搜索并下载exe文件. 地址:http://sourceforge.net/projects/matplotlib/files/matplotlib/. 我的是64位

Sphinx在windows下安装使用(支持中文全文检索)

前段时间听同事谈起过,公司内部的一个搜索功能用的就是Sphinx,但一直没时间去整一下,今天刚好有点时间,那么就折腾一次吧.一般在linux上比较多,今天就在windows下安装于调试一下吧. 前言: 一.关于Sphinx Sphinx 是一个在GPLv2 下发布的一个全文检索引擎,商业授权(例如, 嵌入到其他程序中)需要联系作者(Sphinxsearch.com)以获得商业授权.一般而言,Sphinx是一个独立的搜索引擎,意图为其他应用提供高速.低空间占用.高结果相关度的全文搜索功能.Sphi

如何在Windows下使用matplotlib

在开始之前,向matplotlib的创造者,John D. Hunter表示崇高的敬意,和无尽的怀念. (John D. Hunter 1968-2012) matplotlib是一个给予Python的绘图库,非常美观. 安装Python 首先,安装python2.7,3.X版本的Python还在开发过程中,不如2.X稳定.所以我们使用python2.7版本.而许多python的版本都是基于32位的,所以我们选择2.7.X的32位版本来进行安装.从 https://www.python.org/

python字符集分析,解决windows下FTPClient下载中文名称文件乱码

python中的中文编码一直以来都是一个极为头大的问题,经常抛出编码转换的异常,python中的str和unicode到底是一个什么东西呢?在python中提到unicode,一般指的是unicode对象,例如'哈哈'的unicode对象为u'\u54c8\u54c8',而str,是一个字节数组,这个字节数组表示的是对unicode对象编码(可以是utf-8.gbk.cp936.GB2312)后的存储的格式.这里它仅仅是一个字节流,没有其它的含义,如果你想使这个字节流显示的内容有意义,就必须用正

【转】 详细介绍windows下使用python pylot进行网站压力测试

windows下使用python进行网站压力测试,有两个必不可少的程序需要安装,一个是python,另一个是pylot.python是一个安装软件,用来运行python程序,而pylot则是python的一个功能插件,作用是进行网站压力测试.本文将介绍在windows下如何使用python pylot进行网站压力测试. 一.安装python 如果你已经成功安装了python,那么可以忽略这步.否则,请首先正确安装python,确保能运行正常.可以看看这里,windows安装python详细教程

windows下python配置numpy、matplotlib、scipy

这两天对Python进行了研究,并且配置了numpy.matplotlib以及scipy.现对基本概念以及配置步骤介绍: 基本概念: Python (英语发音:/?pa?θ?n/), 是一种面向对象.解释型计算机程序设计语言.专用的科学计算扩展库很多,例如如下3个十分经典的科学计算扩展库:NumPy.SciPy和matplotlib,它们分别为Python提供了快速数组处理.数值运算以及绘图功能. <python科学计算>这本书中对Python介绍得很是详细,推荐下.电子版下载链接http:/