這篇文章主要介紹python如何設置matplotlib正確顯示中文,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1、簡單易用,與C/C++、Java、C# 等傳統語言相比,Python對代碼格式的要求沒有那么嚴格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺上使用;3、Python面向對象,能夠支持面向過程編程,也支持面向對象編程;4、Python是一種解釋性語言,Python寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序;5、Python功能強大,擁有的模塊眾多,基本能夠實現所有的常見功能。
matplotlib是 Python 優秀的數據可視化第三方庫,matplotlib是基于 numpy 的一套 Python 工具包。這個包提供了豐富的數據繪圖工具,主要用于繪制一些統計圖形。
Matplotlib庫由各種可視化類構成,內部結構復雜,受 Matlab 啟發 matplotlib.pyplot 是繪制各類可視化圖形的命令子庫,相當于快捷方式。
import matplotlib.pyplot as plt
可 matplotlib 并不支持中文顯示。有中文顯示會出現如下問題:
# -*- coding: UTF-8 -*- """ @Author :葉庭云 @公眾號 :修煉Python @CSDN :https://yetingyun.blog.csdn.net/ 三折線 黑白灰風格 標簽label 標記點形狀 """ import matplotlib.pyplot as plt # 生成x軸數據 列表推導式 x_data = [i for i in range(0, 55, 5)] # 構造y軸數據 y_data1 = [0.5, 0.62, 0.72, 0.78, 0.85, 0.7, 0.64, 0.44, 0.29, 0.15, 0.09] y_data2 = [0.5, 0.67, 0.71, 0.76, 0.79, 0.66, 0.58, 0.44, 0.38, 0.26, 0.18] y_data3 = [0.5, 0.59, 0.72, 0.74, 0.76, 0.68, 0.58, 0.48, 0.4, 0.36, 0.3] # 設置圖形顯示風格 plt.style.use('ggplot') # 設置figure大小 像素 plt.figure(figsize=(8, 5), dpi=100) # 繪制三條折線 點的形狀 顏色 標簽:用于圖例顯示 plt.plot(x_data, y_data1, marker='^', color="k", label="設備1") plt.plot(x_data, y_data2, marker="o", color="k", label="設備2") plt.plot(x_data, y_data3, marker="s", color="k", label="設備3") # x y 軸標簽 字體大小 plt.xlabel("時間周期/min", fontsize=13) plt.ylabel("直接信任度值", fontsize=13) # 顯示圖例 plt.legend() # 保存圖片 展示show plt.savefig("折線圖01.png", dpi=200) plt.show()
可 matplotlib 并不支持中文顯示。有中文顯示會出現如下問題:
# -*- coding: UTF-8 -*- """ @Author :葉庭云 @公眾號 :修煉Python @CSDN :https://yetingyun.blog.csdn.net/ 三折線 黑白灰風格 標簽label 標記點形狀 """ import matplotlib.pyplot as plt # 生成x軸數據 列表推導式 x_data = [i for i in range(0, 55, 5)] # 構造y軸數據 y_data1 = [0.5, 0.62, 0.72, 0.78, 0.85, 0.7, 0.64, 0.44, 0.29, 0.15, 0.09] y_data2 = [0.5, 0.67, 0.71, 0.76, 0.79, 0.66, 0.58, 0.44, 0.38, 0.26, 0.18] y_data3 = [0.5, 0.59, 0.72, 0.74, 0.76, 0.68, 0.58, 0.48, 0.4, 0.36, 0.3] # 設置圖形顯示風格 plt.style.use('ggplot') # 設置figure大小 像素 plt.figure(figsize=(8, 5), dpi=100) # 繪制三條折線 點的形狀 顏色 標簽:用于圖例顯示 plt.plot(x_data, y_data1, marker='^', color="k", label="設備1") plt.plot(x_data, y_data2, marker="o", color="k", label="設備2") plt.plot(x_data, y_data3, marker="s", color="k", label="設備3") # x y 軸標簽 字體大小 plt.xlabel("時間周期/min", fontsize=13) plt.ylabel("直接信任度值", fontsize=13) # 顯示圖例 plt.legend() # 保存圖片 展示show plt.savefig("折線圖01.png", dpi=200) plt.show()
需要我們手動一下下設置~~,才能解決中文顯示的問題。
from matplotlib.font_manager import FontProperties # 導入FontProperties font = FontProperties(fname="SimHei.ttf", size=14) # 設置字體 # 哪里需要顯示中文就在哪里設置
# -*- coding: UTF-8 -*- """ @Author :葉庭云 @公眾號 :修煉Python @CSDN :https://yetingyun.blog.csdn.net/ 三折線 黑白灰風格 標簽label 標記點形狀 """ import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 步驟一 # 生成x軸數據 列表推導式 x_data = [i for i in range(0, 55, 5)] # 構造y軸數據 y_data1 = [0.5, 0.62, 0.72, 0.78, 0.85, 0.7, 0.64, 0.44, 0.29, 0.15, 0.09] y_data2 = [0.5, 0.67, 0.71, 0.76, 0.79, 0.66, 0.58, 0.44, 0.38, 0.26, 0.18] y_data3 = [0.5, 0.59, 0.72, 0.74, 0.76, 0.68, 0.58, 0.48, 0.4, 0.36, 0.3] # 設置圖形顯示風格 plt.style.use('ggplot') font = FontProperties(fname="SimHei.ttf", size=14) # 步驟二 # 設置figure大小 像素 plt.figure(figsize=(8, 5), dpi=100) # 繪制三條折線 點的形狀 顏色 標簽:用于圖例顯示 plt.plot(x_data, y_data1, marker='^', color="k", label="設備1") plt.plot(x_data, y_data2, marker="o", color="k", label="設備2") plt.plot(x_data, y_data3, marker="s", color="k", label="設備3") # x y 軸標簽 字體大小 plt.xlabel("時間周期/min", fontsize=13, fontproperties=font) plt.ylabel("直接信任度值", fontsize=13, fontproperties=font) # 顯示圖例 plt.legend(prop=font) # 保存圖片 展示show plt.savefig("折線圖01.png", dpi=200) plt.show()
結果如下:
通過 fontdict 字典參數來設置
fontdict={"family": "KaiTi", "size": 15, "color": "r"}
# -*- coding: UTF-8 -*- """ @Author :葉庭云 @公眾號 :修煉Python @CSDN :https://yetingyun.blog.csdn.net/ 三折線 黑白灰風格 標簽label 標記點形狀 """ import matplotlib.pyplot as plt # 生成x軸數據 列表推導式 x_data = [i for i in range(0, 55, 5)] # 構造y軸數據 y_data1 = [0.5, 0.62, 0.72, 0.78, 0.85, 0.7, 0.64, 0.44, 0.29, 0.15, 0.09] y_data2 = [0.5, 0.67, 0.71, 0.76, 0.79, 0.66, 0.58, 0.44, 0.38, 0.26, 0.18] y_data3 = [0.5, 0.59, 0.72, 0.74, 0.76, 0.68, 0.58, 0.48, 0.4, 0.36, 0.3] # 設置圖形顯示風格 plt.style.use('ggplot') # 設置figure大小 像素 plt.figure(figsize=(8, 5), dpi=100) # 繪制三條折線 點的形狀 顏色 標簽:用于圖例顯示 plt.plot(x_data, y_data1, marker='^', color="k", label="設備1") plt.plot(x_data, y_data2, marker="o", color="k", label="設備2") plt.plot(x_data, y_data3, marker="s", color="k", label="設備3") # x y 軸標簽 字體大小 plt.xlabel("時間周期/min", fontsize=13, fontdict={"family": "KaiTi", "size": 15, "color": "r"}) plt.ylabel("直接信任度值", fontsize=13, fontdict={"family": "KaiTi", "size": 15, "color": "k"}) # 顯示圖例 plt.legend(prop={'family': 'SimHei', 'size': 16}) # 保存圖片 展示show plt.savefig("折線圖01.png", dpi=200) plt.show()
改變全局的字體
# matplotlib其實是不支持顯示中文的 顯示中文需要一行代碼設置字體 mpl.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus'] = False # 步驟二(解決坐標軸負數的負號顯示問題)
# -*- coding: UTF-8 -*- """ @Author :葉庭云 @公眾號 :修煉Python @CSDN :https://yetingyun.blog.csdn.net/ 三折線 黑白灰風格 標簽label 標記點形狀 """ import matplotlib.pyplot as plt import matplotlib as mpl # 生成x軸數據 列表推導式 x_data = [i for i in range(0, 55, 5)] # 構造y軸數據 y_data1 = [0.5, 0.62, 0.72, 0.78, 0.85, 0.7, 0.64, 0.44, 0.29, 0.15, 0.09] y_data2 = [0.5, 0.67, 0.71, 0.76, 0.79, 0.66, 0.58, 0.44, 0.38, 0.26, 0.18] y_data3 = [0.5, 0.59, 0.72, 0.74, 0.76, 0.68, 0.58, 0.48, 0.4, 0.36, 0.3] # matplotlib其實是不支持顯示中文的 顯示中文需要一行代碼設置字體 mpl.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus'] = False # 步驟二(解決坐標軸負數的負號顯示問題) # 設置圖形顯示風格 plt.style.use('ggplot') # 設置figure大小 像素 plt.figure(figsize=(8, 5), dpi=100) # 繪制三條折線 點的形狀 顏色 標簽:用于圖例顯示 plt.plot(x_data, y_data1, marker='^', color="k", label="設備1") plt.plot(x_data, y_data2, marker="o", color="k", label="設備2") plt.plot(x_data, y_data3, marker="s", color="k", label="設備3") # x y 軸標簽 字體大小 plt.xlabel("時間周期/min", fontsize=13) plt.ylabel("直接信任度值", fontsize=13) # 顯示圖例 plt.legend() # 保存圖片 展示show plt.savefig("折線圖01.png", dpi=200) plt.show()
結果如下:
同樣也是全局改變字體的方法
font = {'family' : 'SimHei', 'weight' : 'bold', 'size' : '16'} plt.rc('font', **font) # 步驟一(設置字體的更多屬性) plt.rc('axes', unicode_minus=False) # 步驟二(解決坐標軸負數的負號顯示問題)
# -*- coding: UTF-8 -*- """ @Author :葉庭云 @公眾號 :修煉Python @CSDN :https://yetingyun.blog.csdn.net/ 三折線 黑白灰風格 標簽label 標記點形狀 """ import matplotlib.pyplot as plt # 生成x軸數據 列表推導式 x_data = [i for i in range(0, 55, 5)] # 構造y軸數據 y_data1 = [0.5, 0.62, 0.72, 0.78, 0.85, 0.7, 0.64, 0.44, 0.29, 0.15, 0.09] y_data2 = [0.5, 0.67, 0.71, 0.76, 0.79, 0.66, 0.58, 0.44, 0.38, 0.26, 0.18] y_data3 = [0.5, 0.59, 0.72, 0.74, 0.76, 0.68, 0.58, 0.48, 0.4, 0.36, 0.3] font = {'family' : 'SimHei', 'weight' : 'bold', 'size' : '16'} plt.rc('font', **font) # 步驟一(設置字體的更多屬性) plt.rc('axes', unicode_minus=False) # 步驟二(解決坐標軸負數的負號顯示問題) # 設置圖形顯示風格 plt.style.use('ggplot') # 設置figure大小 像素 plt.figure(figsize=(8, 5), dpi=100) # 繪制三條折線 點的形狀 顏色 標簽:用于圖例顯示 plt.plot(x_data, y_data1, marker='^', color="k", label="設備1") plt.plot(x_data, y_data2, marker="o", color="k", label="設備2") plt.plot(x_data, y_data3, marker="s", color="k", label="設備3") # x y 軸標簽 字體大小 plt.xlabel("時間周期/min", fontsize=13) plt.ylabel("直接信任度值", fontsize=13) # 顯示圖例 plt.legend() # 保存圖片 展示show plt.savefig("折線圖01.png", dpi=200) plt.show()
結果如下:
方式一、方式二是哪里需要中文顯示才設置,且不會污染全局字體設置,更靈活。
方式三、方式四不改變全局的字體設置,一次設置,多次使用,更方便。
附常用字體如下:
宋體:SimSun
黑體:SimHei
微軟雅黑:Microsoft YaHei
微軟正黑體:Microsoft JhengHei
新宋體:NSimSun
新細明體:PMingLiU
細明體:MingLiU
標楷體:DFKai-SB
仿宋:FangSong
楷體:KaiTi
隸書:LiSu
幼圓:YouYuan
華文細黑:STXihei
華文楷體:STKaiti
華文宋體:STSong
華文中宋:STZhongsong
華文仿宋:STFangsong
方正舒體:FZShuTi
方正姚體:FZYaoti
華文彩云:STCaiyun
華文琥珀:STHupo
華文隸書:STLiti
華文行楷:STXingkai
華文新魏:STXinwei
以上是“python如何設置matplotlib正確顯示中文”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。