這文章适合在電腦上面看,手機螢幕太小了
今天繪圖,好多忘記了,然後參考了一篇文章,整理一份複習資料出來:
plot(x, y, linestyle, linewidth, marker, markersize, color, alpha)
複制

線的風格
标記點的樣子
plot(x, y, linestyle, linewidth, marker, markersize, color, alpha)
複制
x就是每次取的步進值
y是計算表達式後的值
線的風格
線寬
上面點的樣子
這個形狀的大小
顔色
透明度[0,1] 左閉右閉
顔色表
對于一個顔色有很多的輸入:
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 --- 設定背景透明度
複制
可以看到中文,顯示異常
VSCode裡面可以選渲染的引擎
plt.xlabel("時間")
plt.ylabel("數量")
plt.rcParams['font.sans-serif']=['SimHei']
複制
顯示正常了
C:\Windows\Fonts
複制
裡面的字型,右鍵就可以看見具體的名字啥的
from matplotlib import font_manager
font = font_manager.FontProperties(fname="C:\Windows\Fonts\STXINGKA.TTF")
plt.xlabel("時間", fontproperties=font)
plt.ylabel("數量", fontproperties=font)
複制
沒出來結果,姿勢不對?
這裡給一段代碼,随滑鼠滑動自動标注代碼
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])
複制
負号不顯示
plt.rcParams['axes.unicode_minus'] = False
# 加這代碼
plt.plot([-1, 0, 1], [1, 0, -1])
複制
顯示負号了
plt.rcParams['font.sans-serif']=['SimHei'] # 顯示中文
plt.rcParams['axes.unicode_minus'] = False # 顯示負号
複制
每次寫程式都加這個代碼行
https://blog.csdn.net/weixin_44225602/article/details/103000865
複制
文章是參考這個老哥的
幾種繪圖的使用場景
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()
複制
樣子,上面有代碼行