天天看點

Matplotlib繪圖複習.基本元素

這文章适合在電腦上面看,手機螢幕太小了

今天繪圖,好多忘記了,然後參考了一篇文章,整理一份複習資料出來:

plot(x, y, linestyle, linewidth, marker, markersize, color, alpha)           

複制

Matplotlib繪圖複習.基本元素

線的風格

Matplotlib繪圖複習.基本元素

标記點的樣子

plot(x, y, linestyle, linewidth, marker, markersize, color, alpha)           

複制

x就是每次取的步進值

y是計算表達式後的值

線的風格

線寬

上面點的樣子

這個形狀的大小

顔色

透明度[0,1] 左閉右閉

Matplotlib繪圖複習.基本元素

顔色表

對于一個顔色有很多的輸入:

red r 這樣的寫法是可以的

16進制的串串是可以的 “#008000”

RGBA - (Red, Green, Blue, Alpha)

RGBA 值在 0-1 之間

color = (0.3, 0.5, 0.7, 0.9) 寫法

plot(x, y, fmt)           

複制

這樣也是可以的

fmt = [color] [marker] [linestyle]           

複制

fmt裡面寫這個

b   ---  blue markers with default shape
ro  ---  red circles
g-  ---  green solid line
--  ---  dashed line with default color           

複制

就是這樣

b --- 預設形狀的藍色标記
ro --- 紅色圓圈
g- --- 綠色實線
--- 預設顔色的虛線           

複制

我幫你翻譯了

對一個圖來說,坐标軸很重要:

xlabel(xlabel, fontproporties=None, fontsize=12, rotation=0, backgroundcolor='b', color='k', alpha=None, bbox=None)

ylabel(ylabel, fontproporties=None, fontsize=12, rotation=90, backgroundcolor='b', color='k', alpha=None, bbox=None)           

複制

調用方式

xlabel --- 标簽。

fontproporties --- 字型路徑,預設None。(注意:font設定後,fontdict部分屬性失效)

fontsize --- 字型大小,預設12

rotation --- 旋轉角度,從0開始。ylabel預設90,即垂直;xlabel預設0,即水準。

backgroundcolor--- 背景色。

color --- 标簽顔色。

alpha --- 字型透明度。取值[0,1]。

(2)fontdict  ---字型字典參數(key加引号),包含font屬性
"fontsize":12                       --- 字型大小,預設12。整型
"fontweight":"medium"               --- 字型粗細。可選:'light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'
"fontstyle":"normal"                --- 字型風格。可選:"normal", "italic"-斜體, "oblique"-傾斜
"verticalalignment":"baseline"      --- 設定垂直對齊方式。可選:"center", "bottom", "top", "baseline"
"horizontalalignment":"center"      --- 設定水準對齊方式。可選:"left","right","center"           

複制

參數

xlabel(xlabel, fontproporties=None)           

複制

字典參數

(3)bbox  ---設定标題盒屬性字典參數(key不加引号)
boxstyle                   --- 設定邊框風格。如:"round"
facecolor                  --- fc。設定标題框背景顔色。
edgecolor                  --- ec。設定邊框顔色。
linewidth                  --- lw。設定邊框厚度。
alpha                      --- 設定背景透明度           

複制

Matplotlib繪圖複習.基本元素
Matplotlib繪圖複習.基本元素

可以看到中文,顯示異常

Matplotlib繪圖複習.基本元素

VSCode裡面可以選渲染的引擎

plt.xlabel("時間")
plt.ylabel("數量")
plt.rcParams['font.sans-serif']=['SimHei']           

複制

Matplotlib繪圖複習.基本元素

顯示正常了

C:\Windows\Fonts           

複制

Matplotlib繪圖複習.基本元素

裡面的字型,右鍵就可以看見具體的名字啥的

from matplotlib import font_manager
font = font_manager.FontProperties(fname="‪C:\Windows\Fonts\STXINGKA.TTF")

plt.xlabel("時間", fontproperties=font)
plt.ylabel("數量", fontproperties=font)           

複制

沒出來結果,姿勢不對?

Matplotlib繪圖複習.基本元素

這裡給一段代碼,随滑鼠滑動自動标注代碼

xticks(ticks=None, labels=None, rotation=0, color='k', fontsize=12, alpha=None, backgroundcolor=None, fontdict=None, bbox=None)
yticks(ticks=None, labels=None, rotation=0, color='k', fontsize=12, alpha=None, backgroundcolor=None, fontdict=None, bbox=None)           

複制

一般來說,如果你不指定刻度,機器自己算個出來

也可以通過這個函數來設定

ticks           --- 可疊代類數組對象
labels          --- 更改刻度上的标簽,但實際值還是ticks指定的。           

複制

剩下的參數一樣

這個代碼應該放在最後,作圖函數的後面,不然就機器繪制了。

xlim(left, right)
ylim(left, right)           

複制

軸長也是可以設定的,就是上面的是刻度

下面的是長度

其實繪圖就是這樣,在出結果以前,你應該在腦子裡面有圖的樣子

left     --- 左界限
right    --- 右界限           

複制

lim 與 ticks 這個兩個都可以幹預這個軸

取決于代碼的前後順序

但是lim可以小于圖,就是對感興趣的地方顯著

圖的表題很重要:

title(label, fontporperties=None, loc='center', pad=None, rotation, alpha, backgroundcolor, color, fontdict=None, bbox=None)           

複制

函數

(1)基本參數
label            ---  标題
fontporperties   ---  同上。字型檔案路徑font。(注意:font設定後,fontdict部分屬性失效)
loc              ---  标題的位置。預設"center"。其餘:"left","right"
pad              ---  标題到圖表的上下距離。浮點型資料
rotation         ---  旋轉角度。"vertical", "horizontal"。可以為數字
alpha            ---  字型透明度。取值[0,1],同上。
backgroundcolor  ---  背景顔色。同color字型顔色使用方法。
color            ---  字型顔色。


(2)fontdict  ---字型字典參數(key加引号),包含font屬性
"fontsize":12                       --- 字型大小,預設12。整型
"fontweight":"medium"               --- 字型粗細。可選:'light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'
"fontstyle":"normal"                --- 字型風格。可選:"normal", "italic"-斜體, "oblique"-傾斜
"verticalalignment":"baseline"      --- 設定垂直對齊方式。可選:"center", "bottom", "top", "baseline"
"horizontalalignment":"center"      --- 設定水準對齊方式。可選:"left","right","center"


注意:fontdict裡的參數可不加引号,然後直接當做基本參數使用


(3)bbox  ---設定标題盒屬性字典參數(key不加引号)
boxstyle                   --- 設定邊框風格。如:"round"
facecolor                  --- 設定标題框背景顔色。
edgecolor                  --- 設定邊框顔色。
linewidth                  --- 設定邊框厚度。
alpha                      --- 設定背景透明度           

複制

注釋文本:

annotate(text, xy, xytext, arrowprops=dict(), fontdict=None, bbox=None)           

複制

(1)基本屬性
text          --- 注釋文本内容
xy            --- 要注釋點的坐标
xytext        --- 注釋文本的新坐标
color         --- 注釋的顔色

(2)arrowprops ---箭頭字典屬性
color         --- 箭頭的顔色
width         --- 箭頭的箭身的寬度
headwidth     --- 箭頭的頭部的寬度
headlength    --- 箭頭的頭部的長度
shrink        --- 箭頭的整體長度進行縮水調整。取值[0.1,0.5),表示箭頭的頭部和尾部同時縮小該值比例長度;取值[0.5, 0.9]表示箭頭的尾部縮小該比例。其餘值按原整體長度不變。
arrowstyle    --- 箭頭的樣式風格
  ``'-'``        None
    ``'->'``       head_length=0.4,head_width=0.2
    ``'-['``       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
(3)fontdict 文字屬性,同上
(4)bbox 盒框屬性,同上。
           

複制

plt.plot([-1, 0, 1],[1, 0, -1])           

複制

Matplotlib繪圖複習.基本元素

負号不顯示

plt.rcParams['axes.unicode_minus'] = False
# 加這代碼
plt.plot([-1, 0, 1], [1, 0, -1])           

複制

Matplotlib繪圖複習.基本元素

顯示負号了

plt.rcParams['font.sans-serif']=['SimHei']    # 顯示中文
plt.rcParams['axes.unicode_minus'] = False    # 顯示負号           

複制

每次寫程式都加這個代碼行

https://blog.csdn.net/weixin_44225602/article/details/103000865           

複制

文章是參考這個老哥的

Matplotlib繪圖複習.基本元素

幾種繪圖的使用場景

bar(x, height, width=0.8, bottom=None, align='center', color='b', edgecolor='w', linewidth=None, hatch=None, joinstyle='miter', visiable=True, log=False, label=None)           

複制

條形圖

x           --- 橫坐标資料。
height      --- 高度,相當于y,即縱坐标資料。
width       --- 柱子的寬度,預設為0.8。
bottom      --- 柱子底部從y軸的哪一個值開始顯示,即y軸底部最小值改為該值。
align       --- 柱子相對于刻度的位置。預設'center',刻度位于柱子中間。可選:'edge',即刻度在柱子的左邊緣;将width設定為負數,可将刻度設定到柱子右邊。
color       --- 柱子的顔色,預設藍色-blue。
edgecolor   --- 柱子邊緣的顔色,預設白色-white。
linewidth   --- 柱子邊緣的寬度。
hatch       --- 柱子内的圖案。可選:'/', '\\', '|', '-', '+', 'x', 'o', 'O', '.', '*'
joinstyle   --- 柱子頂部的尖角形狀,預設為'miter',即直角。可選: 'round', 'bevel',即圓角和傾斜角。
visiable    --- 圖案是否可見,預設True。False即為空圖。
log         --- 将y軸設定為log資料,預設為False。
label       --- 圖檔自身的标簽。
           

複制

參數意思

movies = {
    "流浪地球":40.78,
    "飛馳人生":15.77,
    "瘋狂的外星人":20.83,
    "新喜劇之王":6.10,
    "廉政風雲":1.10,
    "神探蒲松齡":1.49,
    "小豬佩奇過大年":1.22,
    "熊出沒·原始時代":6.71
}

plt.bar(x=list(movies.keys()), height=list(movies.values()), 
width=0.8, 
align='center', 
alpha=0.2, c
olor='red', 
linewidth=9, 
edgecolor='b', 
hatch='\\', 
joinstyle='round')


plt.xticks(list(movies.keys()), rotation=90)
plt.grid()
           

複制

Matplotlib繪圖複習.基本元素

樣子,上面有代碼行