本系列内容所用Python版本為anaconda,直接浏覽器搜索下載安裝即可!
今天我們開始學習Python第三方庫matplotlib的基礎知識。
一、matplotlib庫的概述
matplotlib庫是Python的一個繪圖庫,使用它可以輕松的繪畫出版質量的圖形
二、基本繪圖
matplotlib繪圖庫的核心方法是plot方法,該方法一般形式如下:
mp.plot(x,y),其中x和y是序列,并且元素一一對應,該方法參數還非常多,後續内容将圍繞展開,調用完plot方法後,還需調用mp.show()方法才能顯示圖像,該方法是阻塞方法,即不關閉顯示的圖像窗口後續代碼将停止運行,所以一般最後才調用show函數
1.簡單函數圖像
繪制一條函數圖像
其顯示結果如下:
2.水平線和垂直線
水平線的api:mp.hlines(xval,xmin,xmax)
垂直線的api:mp.vlines(vval,ymin,ymax)
其中value參數表示橫和豎的水平,min和max參數表示線的起止位置
畫一條y為7.5,x為1到3的水平線,x為3,y為6到9的垂直線
其顯示結果如下:
我們可以看到,hlines、vlines函數都是複數形式,說明可以就調用一次同時畫多條水平或垂直線
方法的第一個列表參數為線的水平垂直程度,後兩個列表參數一一對應構成線的起止位置
其顯示結果如下:
3.畫正弦函數
畫函數圖像的底層邏輯是找出函數上一一對應的x、y,通過連接每一個(x,y)而得到函數圖像,畫正弦函數時,x序列可以通過linspace方法線性拆分-π到π,y序列則通過sin函數代入每一個x得到
其顯示結果如下:
4.設置線型、線寬、線的顔色
mp.plot(xarray,yarray,linestyle='',linewidth=1,color='',alpha=0.5)
其中linestyle參數表示線的形狀,一般用到的有‘-’、‘--’、‘-.’、‘:’等,linewidth參數表示線的寬度,是數值,0.5表示是标準寬度的0.5倍,color參數表示線的顔色,可以是顔色的英文單詞,可以是首字母,可以是rgb數值,一般用到的有‘lightgray淺灰色’、‘orangered橙紅色’、‘dodgerblue藍色’、‘limegreen綠色’,alpha參數表示線的透明度
測試一下
sinx/2的線型為--,這裡有筆誤
其結果如下:
5.設置坐标軸的範圍
mp.xlim(xlimt_min,xlimt_max)
mp.ylim(ylimt_min,ylimt_max)
其中第一個參數為x/y軸的範圍最小值,第二個參數為x/y軸的範圍最大值
給x軸y軸設定範圍
其運行結果如下:
6.設置坐标軸的刻度
mp.xticks(x_val_list,x_text_list)
mp.yticks(x_val_list,x_text_list)
第一個參數表示坐标軸刻度的真實值,第二個參數則表示值的表示形式
x_val_list是值列表,x_text_list是值得顯示形式列表
其顯示結果如下:
latex語法
上圖中我們發現-π/2并不是我們常見的分數形式,顯示還是不直觀,特别是以後可能還會用到其它比較複雜的符号,輸入法根本打印不出來,這個就需要我們用到latex字符串語法
例如我們對上面代碼進行改進
其運行結果如下:
latex語法總是以兩個$符号為界限,字符串前面的r是為了轉義字符串裡面的反斜杠,\pi是符号π的意思,\frac是分數的意思,後面兩個中括号第一個填分子、第二個填分母,還有很多,大家可以去網上搜索學習
7.設置坐标軸的位置
上述的圖像其實有四條軸,left左軸、right右軸、top上軸、bottm下軸,并且x和y軸并不在中間,這時我們為了函數圖像的直觀,需要對坐标軸進行操作,一系列api如下:
ax=mp.gca()
該方法獲取當前的坐标軸字典,并賦值給變量ax
axis=ax.spines['坐标軸名']
該方法獲取單個坐标軸
axis.set_position((type,val))
該方法設置坐标軸的位置,參數為2個元素的元組
axis.set_color(color)
該方法改變坐标軸的顔色,參數為none時代表不要該坐标軸
其運行結果如下:
8.圖例
圖例是在函數坐标系适當位置标識出各個函數圖像,其api一般形式如下:
mp.legend(loc='')
其中參數loc表示圖例顯示在哪裡,默認為最佳位置,也可以設置為字符串'best'或'right top'等等,也可以直接寫數字0、1、2等等,0也是最佳位置的意思
但上述方法僅僅隻是顯示圖例的方法,我們在畫函數線的時候需要給該圖像一個标簽最終才能顯示出來,形如下面
mp.plot(x,y......label='y=sin(x)')
其運行結果如下:
9.特殊點
有時需要在函數圖像上對特殊點進行标記,這就需要用到特殊點的方法
mp.scatter(xarray,yarray,marker='',s='',edgecolor='',facecolor='',zorder=3)
xarray、yarray參數表示特殊點的坐标,可以是數組,marker參數表示特殊點的形狀常用形狀有'o'表示圓形、's'表示方形、'D'表示菱形等等,s參數表示特殊點的大小,edgecolor參數表示特殊點的邊緣色,facecolor表示特殊點的填充色,zorder參數則表示特殊點所在圖層編号,越大圖層則越靠上
其運行結果如下:
10.備注
為在某條函數上的點添加備注,指明相關信息
mp.annotate('',xy=(x,y),xytext=(x,y),fontzie=14,arrowprops=dict())
其中第一個字符串參數表示備注的文本,xy參數表示備注目标點的坐标,xytext參數則表示備注文本的坐标,arrowprops參數是一個字典,有兩個元素,一是箭頭形狀,二是箭連接方式
其運行結果如下:
好了,至此我們已經學習了matplotlib庫簡單的繪圖方法,後續我們将繼續學習更加高級的操作。
END
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!