使用matplotlib繪圖時中文字型的解決方案
matplotlib是python中很強大的一款繪圖工具包,裡面提供了類似於條形圖、柱狀圖、折線圖等一系列常見的圖形的繪製方法。在繪圖的時候,經常要對圖中的相關資料進行標識以及新增圖例、標題等,但在matplotlib中,在使用中文的時候經常會出現一些亂碼的問題,現提供以下幾種解決方案。
1. 第一種方法是使用matplot的reParams屬性來設定,具體 如下:
import pandas as pd import matplotlib.pyplot as plt catering_sale = './data/catering_sale.xls' data = pd.read_excel(catering_sale, index_col=u'日期') data.describe() # 使用盒圖來展示資料 plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字型設定 plt.rcParams['axes.unicode_minus'] = False plt.figure() p = data.boxplot() # 盒圖 x = p['fliers'][0].get_xdata() y = p['fliers'][0].get_ydata() y.sort() for i in range(len(x)): if i >0: plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i]+0.05 -0.8/(y[i] -y[i-1]), y[i])) else: plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i]+0.08, y[i])) plt.show()
2. 第二種方法是使用matplotlib裡面的font_manager工具,主要步驟如下:
(1)匯入font_manager:
import matplotlib.font_manager as fm
(2)找到中文字型在電腦中的位置,匯入中文字型庫
zhfont1 = fm.FontProperties(fname='C:\Windows\Fonts\msyh.ttc') # 字型位置
(3)對於繪圖中中文出現的不同位置,可以有以下的解決方案:
a. 圖例中出現中文:
plt.legend(prop=zhfont1)
b. title和橫縱座標等地方出現中文:
plt.xlabel('性別'
plt.ylabel('人數',fontproperties=zhfont1)
plt.title('直方圖',fontproperties=zhfont1)
plt.xticks( (0,1),('男','女') ,fontproperties=zhfont1)
如果有希臘字母時,使用雙"$...$"符號,如plt.xlabel(u'$ω$')
下面展示一個例子:
import matplotlib.pyplot as plt import matplotlib.font_manager as fm # 匯入中文字型庫 zhfont1 = fm.FontProperties(fname='C:\Windows\Fonts\msyh.ttc') # 字型位置 SAX = [43.97,53.18,65.80,104.06] SAX_TD = [56.84,79.94,122.95,214.56] SAX_SM = [57.12,77.66,117.66,194.22] w = ['2','4','8','16'] x = range(len(w)) plt.xticks(x, w) plt.title(u'不同分段時的執行時間', fontproperties=zhfont1) #title包含中文 plt.xlabel(u'$ω$') # x軸含希臘字母 plt.ylabel('time(s)') plt.yticks([50,100,150,200]) plt.plot(SAX, 'g-',label='SAX') plt.plot(SAX_SM,'b-',label='SAX_SM') plt.plot(SAX_TD,'r-',label='SAX_SM') plt.legend(loc='best') # 圖例的位置 plt.show()
相關推薦
使用matplotlib繪圖時中文字型的解決方案
matplotlib是python中很強大的一款繪圖工具包,裡面提供了類似於條形圖、柱狀圖、折線圖等一系列常見的圖形的繪製方法。在繪圖的時候,經常要對圖中的相關資料進行標識以及新增圖例、標題等,但在matplotlib中,在使用中文的時候經常會出現一些亂碼的問題,現提供以下
解決Windows系統下python利用matplotlib繪圖時中文亂碼的問題
不講道理,直接上解決方案 第一步: 進入windows系統自帶的字型資料夾中,自己電腦能支援的所有字型都在這 裡面。進入方法:控制面板-->外觀和個性化-->字型,進入後的介面如下圖所示: 第二步: 在這個資料夾中找到“
python matplotlib繪圖使用中文字型
由於專案關係,需要使用到資料分析,之前有自學過python,自然想到使用python繪圖。 進而接觸到Matplotlib,經過幾天的學習,不得不說Matplotlib是一個十分powerful的繪圖工具。 下面介紹如何在繪製的matplotlib圖中使用中文。 參考網上其
jodconverter純文字檔案轉為pdf時中文問題解決方案
jodconverter轉換ms檔案都沒有出現中文問題,但是在轉換最簡單的純文字檔案時卻出現中文問題。我開始時找了cpdetecter來探測純文字檔案的編碼格式,但是對一些檔案的編碼格式還是探測不對,所以想通過它探測到文字檔案的編碼格式,再將它轉為UTF-8的方式來實現文
Android ExifInterface 圖片資訊 讀取時中文亂碼解決方案
對於圖片資訊的讀取,通過android本身提供ExifInterFace這個類可以實現。 對於ExifInterface這個類的TAG解釋可以檢視:https://developer.android.google.cn/reference/android/media/Exi
【轉載】Fonts.css -- 跨平臺中文字型解決方案
font-family: -apple-system, "Helvetica Neue", Helvetica, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Source Han Sans CN"
Matplotlib中文亂碼解決方案
Matplotlib,jupyter中文亂碼解決方案 1–座標軸中文亂碼 2–標題亂碼 解決方案 首先下載一種字型 :Mircosoft YaHei UI;如果在C:\Windows\Fonts找到的話就直接拷貝到[your python_in
ubuntu MySQL數據庫輸入中文亂碼 解決方案
title str itl alt 查詢 ref cte class nbsp 一、登錄MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,顯示如下:+--------------------------+--------------
oracle服務端與客戶端字符集不同導致中文亂碼解決方案
use 修改環境變量 描述 image nls_lang oracle服務 環境 分析 導致 1.問題描述 用pl/sql登錄時,會提示“數據庫字符集(ZHS16GBK)和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果”,具體問題是中文亂碼,如下圖 2.
發布或重啟線上服務時抖動問題解決方案
image 初始 ack src 打印 優化 tsp 拷貝 信息 轉自http://www.cnblogs.com/LBSer/p/3703967.html 一、問題描述 在發布或重啟某線上某服務時(jetty8作為服務器),常常發現有些機器的load會飆到非常
Ubuntu中sublime和Foxit Reader不能使用中文輸入法解決方案
you ldconfig details com shu sudo directory upgrade 不能 雖然Ubuntu下面很多軟件同windows下一樣,但是經常會出現各種各樣的小問題,其中最讓人頭疼的是軟件中的輸入法問題。 sublime作為一個跨平臺的編輯軟件,
url傳遞中文的解決方案總結
str art arch strong hive htm IT ID pos File文件控件,選中文件(圖片,flash,視頻)即立即預覽顯示 url傳遞中文的解決方案總結url傳遞中文的解決方案總結
MySQL數據庫中的中文亂碼解決方案。
中文亂碼 數據庫MySQL 數據庫中輸入中文容易出現亂碼?(亂碼問題本源:參見http://blog.51cto.com/12042068/2115021)解決方法:1.在建表建庫的時候就指定默認編碼 utf8. CREATE TABLE table_name (
LoadRunner接口HTTP請求中中文亂碼解決方案
空格 con value 發送 nbsp toe string ner 字符串 今天項目經理要求壓一下實時代扣接口性能。那就開始寫腳本,腳本寫好調試發現接口請求參數姓名輸入中文亂碼。接著就網上找資料解決該問題。 1:想法:將中文轉成UTF-8,lr_convert_stri
idea操作mysql數據庫添加漢字時出現亂碼解決方案
http nco har 一個 技術分享 格式 出現 clas 操作mysql 首先 然後 最後 在連接數據庫後面加一個指定編碼格式 編碼格式: characterEncoding=UTF-8 idea操作mysql數據庫添加漢字時出現亂碼解決方案
Eclipse中文亂碼解決方案
work cli 解決 ner update source 編碼問題 odin tex Eclipse中文亂碼解決方案 第一個設置:window>perferences>general>workspace>text file encoding
記一次SSH中文亂碼解決方案
前言:專案中有中文亂碼是因為亂碼編碼產生。 近期在用SSH寫OA系統的時候遇到中文亂碼問題,解決之餘寫下一丟丟心得,每天進步一小步,又與大神靠近一大步嘛!^_^! SSH是否還有公司在使用,SSH還配不醅稱為三大框架這裡先按下不表,這裡只是給出某次博主遇到問題的解決方案。 1
mac matplotlib繪圖顯示中文亂碼問題
例子 from matplotlib.font_manager import FontProperties font = FontProperties(fname='/Library/Fonts/Songti.ttc') plt.title(title,fontproperties=font) plt.yl
sublime中文亂碼解決方案
最近使用的sublime 編輯器出現了開啟寫好的程式,中文顯示的確是方框,方框裡面是問號,就是不顯示中文。 然後再網上查找了一下,大概都是說是需要中文編碼外掛,比如converttoutf8 gbk等編碼外掛來處理。 不過我發現導致這個問題的不是編碼錯誤,編碼是沒有問題的,都是utf8
Sublime Text在Ubuntu下無法輸入中文的解決方案
解決中文輸入 https://blog.csdn.net/u012300744/article/details/80339452 建立桌面快捷圖示 https://linuxconfig.org/how-to-create-desktop-shortcut-launcher-on-ubuntu-18-0