日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性

發布時間:2023/12/10 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CSDN 課程推薦:《Python 數據分析與挖掘》,講師劉順祥,浙江工商大學統計學碩士,數據分析師,曾擔任唯品會大數據部擔任數據分析師一職,負責支付環節的數據分析業務。曾與聯想、亨氏、網魚網咖等企業合作多個企業級項目。


Matplotlib 系列文章:

  • Python 數據分析三劍客之 Matplotlib(一):初識 Matplotlib 與其 matplotibrc 配置文件
  • Python 數據分析三劍客之 Matplotlib(二):文本描述 / 中文支持 / 畫布 / 網格等基本圖像屬性
  • Python 數據分析三劍客之 Matplotlib(三):圖例 / LaTeX / 刻度 / 子圖 / 補丁等基本圖像屬性
  • Python 數據分析三劍客之 Matplotlib(四):線性圖的繪制
  • Python 數據分析三劍客之 Matplotlib(五):散點圖的繪制
  • Python 數據分析三劍客之 Matplotlib(六):直方圖 / 柱狀圖 / 條形圖的繪制
  • Python 數據分析三劍客之 Matplotlib(七):餅狀圖的繪制
  • Python 數據分析三劍客之 Matplotlib(八):等高線 / 等值線圖的繪制
  • Python 數據分析三劍客之 Matplotlib(九):極區圖 / 極坐標圖 / 雷達圖的繪制
  • Python 數據分析三劍客之 Matplotlib(十):3D 圖的繪制
  • Python 數據分析三劍客之 Matplotlib(十一):最熱門最常用的 50 個圖表【譯文】

另有 NumPy、Pandas 系列文章已更新完畢,歡迎關注:

  • NumPy 系列文章:https://itrhx.blog.csdn.net/category_9780393.html
  • Pandas 系列文章:https://itrhx.blog.csdn.net/category_9780397.html

推薦學習資料與網站(博主參與部分文檔翻譯):

  • NumPy 官方中文網:https://www.numpy.org.cn/
  • Pandas 官方中文網:https://www.pypandas.cn/
  • Matplotlib 官方中文網:https://www.matplotlib.org.cn/
  • NumPy、Matplotlib、Pandas 速查表:https://github.com/TRHX/Python-quick-reference-table

文章目錄

    • 【1x00】添加文本描述
      • 【1x01】添加標題:matplotlib.pyplot.title()
      • 【1x02】為坐標軸添加標簽:matplotlib.pyplot.xlabel() / ylabel()
      • 【1x03】任意位置添加文本:matplotlib.pyplot.text()
      • 【1x03】任意位置添加文本:matplotlib.pyplot.annotate()
    • 【2x00】設置中文顯示
      • 【2x01】常見系統自帶文字及其英文名稱
      • 【2x02】指定全局字體:rcParams
      • 【2x03】指定單個字體:fontproperties
      • 【2x04】指定文字路徑:FontProperties
      • 【2x05】文字更多屬性:rc
    • 【3x00】設置畫布大小 / 分辨率 / 顏色
    • 【4x00】設置網格


這里是一段防爬蟲文本,請讀者忽略。 本文原創首發于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/105828049 未經授權,禁止轉載!惡意轉載,后果自負!尊重原創,遠離剽竊!

【1x00】添加文本描述

【1x01】添加標題:matplotlib.pyplot.title()

matplotlib.pyplot.title() 方法可為圖表添加標題。

基本語法:matplotlib.pyplot.title(label[, fontdict=None, loc=None, pad=None])

參數描述
labelstr 類型,標題文字
fontdict字典類型,控制標題文本外觀,可選項,默認值為:
{'fontsize': rcParams['axes.titlesize'],
'fontweight' : rcParams['axes.titleweight'],
'color' : rcParams['axes.titlecolor'],
'verticalalignment': 'baseline',
'horizontalalignment': loc}
locstr 類型,可選項,三個可選值:center、left、right,默認為 rcParams["axes.titlelocation"](默認為 center)
padfloat 類型,可選項,標題距軸頂部的偏移量(以磅為單位)。如果為 None,則默認為 rcParams["axes.titlepad"](默認為:6.0)

應用舉例:

import matplotlib.pyplot as pltx = range(2, 26, 2) y = range(0, 12) plt.title('This is a title') plt.plot(x, y) plt.show()

【1x02】為坐標軸添加標簽:matplotlib.pyplot.xlabel() / ylabel()

matplotlib.pyplot.xlabel():為 x 軸添加標簽;
matplotlib.pyplot.ylabel():為 y 軸添加標簽。

基本語法:
matplotlib.pyplot.xlabel(xlabel[, fontdict=None, labelpad=None])
matplotlib.pyplot.ylabel(ylabel[, fontdict=None, labelpad=None])

參數描述
xlabel / ylabelstr 類型,要添加的文本信息
fontdict字典類型,控制標題文本外觀,可選項,默認值為:
{'fontsize': rcParams['axes.titlesize'],
'fontweight' : rcParams['axes.titleweight'],
'color' : rcParams['axes.titlecolor'],
'verticalalignment': 'baseline',
'horizontalalignment': loc}
labelpadfloat 類型,可選項,x 軸標簽距離 x 軸的距離

應用舉例:

import matplotlib.pyplot as pltx = range(2, 26, 2) y = range(0, 12) a = [5, 10, 15, 20, 25, 30] b = [3, 4, 5, 6, 7, 8]plt.title('This is a title') plt.xlabel('This is x label', fontdict={'fontsize': 15, 'fontweight': 'bold', 'color': 'red'}, labelpad=15.0) plt.ylabel('This is y label', fontsize=10, fontweight='light', color='blue', labelpad=15.0)plt.plot(x, y) plt.plot(a, b)plt.show()

【1x03】任意位置添加文本:matplotlib.pyplot.text()

matplotlib.pyplot.text() 方法可以在畫布上任意位置添加文本描述。

基本語法:matplotlib.pyplot.text(x, y, s[, fontdict=None, withdash=<deprecated parameter>])

參數描述
x, y放置文本的坐標位置
sstr 類型,要添加的文本信息
fontdict字典類型,控制標題文本外觀,可選項,默認值為:
{'fontsize': rcParams['axes.titlesize'],
'fontweight' : rcParams['axes.titleweight'],
'color' : rcParams['axes.titlecolor'],
'verticalalignment': 'baseline',
'horizontalalignment': loc}
ha注釋點在注釋文本的左邊、右邊或中間(left、right、center)
va注釋點在注釋文本的上邊、下邊、中間或基線 (top、bottom、center、baseline)
withdashbool 類型,可選項,默認為 False,創建一個 TextWithDash 實例而不是一個 Text 實例

應用舉例:

import matplotlib.pyplot as pltplt.rcParams['lines.marker'] = 'o' # 設置線條上點的形狀 a = [5, 10, 15, 20, 25, 30] b = [3, 4, 5, 6, 7, 8]plt.title('This is a title') plt.xlabel('This is x label') plt.ylabel('This is y label')plt.text(4, 3.2, 'text1') plt.text(9, 4.2, 'text2') plt.text(14, 5.2, 'text3') plt.text(19, 6.2, 'text4') plt.text(24, 7.2, 'text5') plt.text(27.5, 7.9, 'text6')plt.plot(a, b)plt.show()

【1x03】任意位置添加文本:matplotlib.pyplot.annotate()

matplotlib.pyplot.annotate() 方法可以在指定坐標點添加文本或 LaTeX 描述,也可以在其他位置添加描述后,使用箭頭指向某個坐標點。比 matplotlib.pyplot.text() 更高級。

基本語法:matplotlib.pyplot.annotate(text, xy, xytext, xycoords, textcoords, ha, va, arrowprops, \*\*kwargs)

參數描述
textstr 類型,注釋的文本
xy被注釋的坐標點,格式:(x, y)
xytext注釋文本的坐標點,格式:(x, y),默認與 xy 相同
xycoords被注釋的坐標點的參考系,取值參見表一,默認為 ‘data’
textcoords注釋文本的坐標點的參考系,取值參見表二,默認為 xycoords 的值
ha注釋點在注釋文本的左邊、右邊或中間(left、right、center)
va注釋點在注釋文本的上邊、下邊、中間或基線 (top、bottom、center、baseline)
arrowpropsdict 字典類型,箭頭的樣式
如果 arrowprops 不包含鍵 arrowstyle,則允許的鍵參見表三
如果 arrowprops 包含鍵 arrowstyle,則允許的鍵參見表四
表一:xycoords 取值類型
取值描述
‘figure points’以畫布左下角為參考,單位為點數
‘figure pixels’以畫布左下角為參考,單位為像素
‘figure fraction’以畫布左下角為參考,單位為百分比
‘axes points’以繪圖區左下角為參考,單位為點數
‘axes pixels’以繪圖區左下角為參考,單位為像素
‘axes fraction’以繪圖區左下角為參考,單位為百分比
‘data’使用被注釋對象的坐標系,即數據的 x, y 軸(默認)
‘polar’使用(θ,r)形式的極坐標系
表二:textcoords 取值類型
取值描述
‘figure points’以畫布左下角為參考,單位為點數
‘figure pixels’以畫布左下角為參考,單位為像素
‘figure fraction’以畫布左下角為參考,單位為百分比
‘axes points’以繪圖區左下角為參考,單位為點數
‘axes pixels’以繪圖區左下角為參考,單位為像素
‘axes fraction’以繪圖區左下角為參考,單位為百分比
‘data’使用被注釋對象的坐標系,即數據的 x, y 軸
‘polar’使用(θ,r)形式的極坐標系
‘offset points’相對于被注釋點的坐標 xy 的偏移量,單位是點
‘offset pixels’相對于被注釋點的坐標 xy 的偏移量,單位是像素
表三:arrowprops 不包含鍵 arrowstyle 時的取值
鍵描述
width箭頭的寬度,以點為單位
headwidth箭頭底部的寬度,以點為單位
headlength箭頭的長度,以點為單位
shrink箭頭兩端收縮占總長的百分比
?其他 matplotlib.patches.FancyArrowPatch 中的關鍵字,部分常用關鍵字參見表五
表四:arrowprops 包含鍵 arrowstyle 時的取值
取值描述
'-'None
'->'head_length=0.4,head_width=0.2
'-['widthB=1.0,lengthB=0.2,angleB=None
']-'widthA=1.0, lengthA=0.2, angleA=None
]-[widthA=1.0, lengthA=0.2, angleA=None, widthB=1.0, lengthB=0.2, angleB=None
'|-|'widthA=1.0,widthB=1.0
'-|>'head_length=0.4,head_width=0.2
'<-'head_length=0.4,head_width=0.2
'<->'head_length=0.4,head_width=0.2
'<|-'head_length=0.4,head_width=0.2
'<|-|>'head_length=0.4,head_width=0.2
'fancy'head_length=0.4,head_width=0.4,tail_width=0.4
'simple'head_length=0.5,head_width=0.5,tail_width=0.2
'wedge'tail_width=0.3,shrink_factor=0.5
表五:matplotlib.patches.FancyArrowPatch 常用的鍵
鍵描述
arrowstyle箭頭樣式,取值參見表四
connectionstyle連接方式,默認為 arc3,有以下五種取值:
angle:angleA=90, angleB=0, rad=0.0
angle3:angleA=90, angleB=0
arc:angleA=0, angleB=0, armA=None, armB=None, rad=0.0
arc3:rad=0.0
bar:armA=0.0, armB=0.0, fraction=0.3, angle=None
angle 為箭頭旋轉的角度,rad 為弧度
relpos箭頭起始點相對注釋文本的位置,默認為 (0.5, 0.5),即文本的中心
(0,0)表示左下角,(1,1)表示右上角
patchA箭頭起點處的圖形,默認為文本的邊框
patchB箭頭終點處的圖形,默認為空
shrinkA箭頭起點的縮進點數,默認為2
shrinkB箭頭終點的縮進點數,默認為2
其他鍵值,參見官方文檔 matplotlib.patches.PathPatch
connectionstyle 樣式舉例

應用舉例:

import numpy as np import matplotlib.pyplot as pltx = np.arange(-2*np.pi, 2*np.pi, 0.01) y = np.sin(1*x)/x plt.title('This is a title') plt.xlabel('This is x label') plt.ylabel('This is y label')plt.plot(x, y)plt.annotate(r'$\lim_{x\to 0}\frac{\sin(x)}{x}=1$', # 插入 LaTeX 表達式xy=[0, 1], # 被標記的坐標xycoords='data', # 被標記的坐標的參考系xytext=[50, -40], # 注釋文本的坐標textcoords='offset points', # 注釋文本的坐標的參考系fontsize=16, # 字體大小arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=.2")) # 箭頭樣式plt.show()


這里是一段防爬蟲文本,請讀者忽略。 本文原創首發于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/105828049 未經授權,禁止轉載!惡意轉載,后果自負!尊重原創,遠離剽竊!

【2x00】設置中文顯示

【2x01】常見系統自帶文字及其英文名稱

Windows 系統中常見自帶字體:

字體英文名稱
黑體SimHei
宋體SimSun
新宋體NSimSun
仿宋FangSong
仿宋_GB2312FangSong_GB2312
楷體_GB2312KaiTi_GB2312
楷體KaiTi
微軟正黑Microsoft JhengHei
微軟雅黑Microsoft YaHei
細明體MingLiU
標楷體DFKai-SB
新細明體PMingLiU

裝有 office 后新添加的字體:

字體英文名稱
隸書LiSu
幼圓YouYuan
華文細黑STXihei
華文楷體STKaiti
華文宋體STSong
華文中宋STZhongsong
華文仿宋STFangsong
方正舒體FZShuTi
方正姚體FZYaoti
華文彩云STCaiyun
華文琥珀STHupo
華文隸書STLiti
華文行楷STXingkai
華文新魏STXinwei

Mac OS 系統中常見自帶字體:

字體英文名稱
華文細黑STHeiti Light / STXihei
華文黑體STHeiti
華文楷體STKaiti
華文宋體STSong
華文仿宋STFangsong
麗黑 ProLiHei Pro Medium
麗宋 ProLiSong Pro Light
標楷體BiauKai
蘋果麗中黑Apple LiGothic Medium
蘋果麗細宋Apple LiSung Light

【2x02】指定全局字體:rcParams

通過 rcParams['font.sans-serif'] 可以配置全局字體。

優點:只需設置一次即可顯示所有中文;缺點:污染全局,無法對單個中文設置字體。

應用舉例:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 配置全局字體為微軟雅黑 plt.rcParams['axes.unicode_minus'] = False # 部分字體負號會顯示亂碼,可添加此參數進行配置 a = [-15, -10, -5, 20, 25, 30] b = [-5, -4, -3, 6, 7, 8]plt.title('這是中文標題') plt.xlabel('這是 x 軸標簽') plt.ylabel('這是 y 軸標簽')plt.plot(a, b) plt.show()

【2x03】指定單個字體:fontproperties

fontproperties 參數可以加在要設置中文的地方

優點:不污染全局;缺點:中文太多了挨個設置比較繁瑣。

應用舉例:

import matplotlib.pyplot as plta = [-15, -10, -5, 20, 25, 30] b = [-5, -4, -3, 6, 7, 8]plt.title('這是中文標題', fontproperties='Microsoft JhengHei') # 微軟正黑 plt.xlabel('這是 x 軸標簽', fontproperties='STLiti') # 華文隸書 plt.ylabel('這是 y 軸標簽', fontproperties='Microsoft YaHei') # 微軟雅黑plt.plot(a, b) plt.show()

【2x04】指定文字路徑:FontProperties

matplotlib 中 font_manager 模塊的 FontProperties 方法可以通過指定文字路徑來使用本地文字,在 Windows 中,文字路徑一般是 C:\Windows\Fonts\,文字名稱可以通過其屬性來獲取,部分用戶自己安裝的字體可能包含多個類型,可打開字體合集后通過其屬性來獲取。

import matplotlib.pyplot as plt from matplotlib.font_manager import FontPropertiesfont = FontProperties(fname=r"C:\Windows\Fonts\STXINGKA.TTF", size=14) a = [-15, -10, -5, 20, 25, 30] b = [-5, -4, -3, 6, 7, 8]plt.title('這是中文標題', fontproperties=font) plt.xlabel('這是 x 軸標簽', fontproperties=font) plt.ylabel('這是 y 軸標簽', fontproperties=font)plt.plot(a, b) plt.show()

【2x05】文字更多屬性:rc

rc 參數支持文字的更多屬性設置,如字體粗細、大小等,這種方法同樣將影響全局。

官方參考:https://matplotlib.org/api/matplotlib_configuration_api.html?highlight=rc#matplotlib.rc

應用舉例:

import matplotlib.pyplot as pltfont = {'family': 'SimHei','weight': 'bold','size': '10'} plt.rc('font', **font) # 設置字體的更多屬性 plt.rc('axes', unicode_minus=False) # 顯示負號a = [-15, -10, -5, 20, 25, 30] b = [-5, -4, -3, 6, 7, 8]plt.title('這是中文標題') plt.xlabel('這是 x 軸標簽') plt.ylabel('這是 y 軸標簽')plt.plot(a, b) plt.show()

【3x00】設置畫布大小 / 分辨率 / 顏色

matplotlib.pyplot.figure() 可以設置畫布的大小、圖片分辨率、顏色等。

基本語法:matplotlib.pyplot.figure(figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, \*\*kwargs)

參數描述
figsize(float, float) 的格式,代表寬度和高度,單位為英寸
默認為 rcParams["figure.figsize"] = [6.4, 4.8],即:640 x 480
dpi圖像分辨率,默認為 rcParams["figure.figsize"] = 100
facecolor圖像背景顏色,默認為 rcParams["figure.edgecolor"] = ‘white’
edgecolor圖像邊緣顏色,默認為 rcParams[’figure.edgecolor’] = ‘white’
frameon是否啟用圖框

應用舉例:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] x = range(2, 26, 2) y = range(0, 12)plt.figure(figsize=(6.5, 5), dpi=120, facecolor='#BBFFFF') plt.plot(x, y)plt.show()

【4x00】設置網格

matplotlib.pyplot.grid() 方法可以為圖表設置網格顯示。

基本語法:matplotlib.pyplot.grid([b=None, which='major', axis='both', \*\*kwargs])

參數屬性
bbool 值,可選項,是否顯示網格,值為 None 或 True 則顯示,False 不顯示
which可選項,在主/次刻度顯示網格線,major:主(大)刻度;minor:次(小)刻度;both:兩者同時顯示
axis可選項,在橫/豎軸顯示網格線,x:x 軸;y:y 軸;both:兩者同時顯示
**kwargs其他 Line2D 屬性,常見 Line2D 屬性見下表

Line2D 屬性用法:grid(color='r', linestyle='-', linewidth=2),部分常見 Line2D 屬性如下:

屬性描述
alpha網格透明度,float 類型,取值范圍:[0, 1],默認為 1.0,即不透明
antialiased / aa是否使用抗鋸齒渲染,默認為 True
color / c網格顏色,支持英文顏色名稱及其簡寫、十六進制顏色碼等,更多顏色示例參見官網 Color Demo
linestyle / ls網格線條樣式:'-' or 'solid', '--' or 'dashed', '-.' or 'dashdot'
':' or 'dotted', 'none' or ' ' or ''
linewidth / lw網格線條寬度,float 類型,默認 0.8

應用舉例:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']a = [-15, -10, -5, 20, 25, 30] b = [-5, -4, -3, 6, 7, 8]plt.title('這是中文標題') plt.xlabel('這是 x 軸標簽') plt.ylabel('這是 y 軸標簽') plt.grid(axis='x', color='red', linestyle='-.', linewidth=2) plt.plot(a, b) plt.show()


這里是一段防爬蟲文本,請讀者忽略。 本文原創首發于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/105828049 未經授權,禁止轉載!惡意轉載,后果自負!尊重原創,遠離剽竊!

總結

以上是生活随笔為你收集整理的Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。