1. 程式人生 > >★ Python 使用Matplotlib庫繪製點圖、折線圖、條狀圖與餅圖

★ Python 使用Matplotlib庫繪製點圖、折線圖、條狀圖與餅圖

★使用Python第三方庫matplotlib2D繪相簿)繪製常見的:

  • 點圖
  • 折線圖
  • 條狀圖
  • 餅圖

引入:

常用的顏色c="???":

            1:紅色‘red’

            2:藍色‘blue’/‘b’

            3:黃色‘yellow’

            4:綠色‘green’

            5:橙色‘orange’

            6:淺藍色‘c’

常見的引數:

            plt.xlabel("Line")    #行標籤

            plt.ylabel("Column")    #列標籤

            plt.title("Chart")    #標題(中文會亂碼)

            plt.xlim(0,10)    #行的取值範圍

            plt.ylim(0,100)    #列的取值範圍

            plt.margins(0)    #邊緣舉例大小

 

然後將會詳細介紹怎麼去使用函式繪製繪製以及繪製相應某種圖形的時候函式所使用的主要引數與屬性引數,

上面的引入部分也會在下方的介紹中使用,可以結合例項進行分析理解,講解不可能包含所有引數,

只是挑出比較常見的進行分析,當學會了基本的可以再在已有的基礎上進行進一步拓展。

 

最後會講解如何儲存上述繪製的圖片。

****************************************************************************************************************************************

 

*繪圖所使用模組的呼叫與其重新命名 (下方有引用

)

import matplotlib.pyplot as plt
import numpy as np

 

一:點圖(plt.scatter(x,y))

*scatter v.撒 n.零星分散的東西

x = np.arange(1,10)      #必須從1開始,而且間隔為1
y = x
plt.scatter(x,y,c='y',marker='x')

# 之所以這裡寫兩個是為了更好的體現出marker引數的含義
# marker引數是用相應的字元對圖中出現的點進行標記

plt.scatter(x,y,c='g',marker='*')

效果展示:

注意事項與常用+關鍵引數解釋:

1:一般在寫程式碼的過程中會遇到換行的問題,但是直接按回車就會直接執行該條語句,那麼怎麼換行呢?

      -> 在一行的末尾使用空格+右斜線,再回車就將直接轉到下一行,但是有些時候這個末尾的空格+右斜線會導致執行錯誤,

      -> 所以在換行後可以使用滑鼠或指標的上下左右定位到上一行末尾將那個斜線刪除就好了

2:這個函式主要有兩個主要引數x、y,只要這兩個引數存在,那麼該函式就能夠正確繪圖,其餘引數直接取預設值;

3:第三個引數c='g' --->>>這裡的c是color(顏色,不是colour~),g表示的是green(綠色),當然也可以寫成:color='green'(單引號也可以換成雙引號),都能夠正常執行,為了方便起見就寫成上述的樣子了(前後都取首字母),我在文章開頭的引入中介紹了不同的可以使用的顏色,可以動手嘗試相應效果。

4:第四個引數marker在上述程式碼框中已經解釋過。

5:是不是覺得怎麼就兩個屬性引數?當然不是,我也在文章開頭提到了常見的引數,看完了這個部分的第一點後就可以直接將其用在繪製這個圖上面了。

 

二:折線圖(plt.plot(x,y))

*plot n.點

*linewidth n.線的寬度

x = np.array([1,2,3,4,5,6,7,8])     #必須從1開始,而且間隔為1

# 這裡你可能會疑問?np.array([])是什麼?
# 這個也就是另一種資料儲存結構,如果不理解可以使用熟悉的元組或列表型別即可
# 元組表示:x = (1,2,3,4,5,6,7,8)
# 列表表示:x = [1,2,3,4,5,6,7,8]

y = np.array([3,5,7,6,2,6,10,15])
plt.plot(x,y,linewidth=3)    #這裡也只有兩個主要引數來支撐折線圖的繪製

效果展示:

注意事項與常用+關鍵引數解釋:

1:語法plt.plot(x,y) 關鍵引數有兩個

2:linewidth線的粗細

3:顏色與上面一致(沒體現在圖中)

 

三:條狀圖(plt.bar())

*bar n.條狀物、柵欄

x = np.array([1,2,3,4,5,6,7,8])    #必須從1開始,而且間隔為1
y = np.array([13,25,17,36,21,16,10,15])

# alpha是透明度(0~1->1表示不透明) ,b是藍色,c是淺藍色
# 0.2是每一條的寬度

plt.bar(x,y,0.2,alpha=1,color='b') 

效果展示:

注意事項與常用+關鍵引數解釋:

1:x、y的定義方式不止np.array一種,元組/列表均可

2:x定義的時候必須從一開始而且連續

3:繪製條狀圖語法plt.bar(x,y,…) x,y是關鍵引數,後面的一些引數僅僅起到修飾該條狀圖的作用

4:color顏色

5:整型資料 在x,y後面直接接著一個整型引數直接決定條狀圖形的寬度(條條之間的間隔,以0.5為基準)

6:alpha透明度【計算機專業專有含義】(1為不透明,小於1為不透明度的大小)

 

四:餅圖(plt.pie())

* pie n.派

* explode v.爆炸

labels = 'Frogs','Hogs','Dogs','Logs'
sizes = [15,30,45,10]
explode = (0,0.1,0,0) 
#0.1表示將Hogs那一塊凸顯出來(explode原意為爆炸)

plt.pie(sizes, explode,labels,autopct='%1.1f%%',radius=1,shadow=False,startangle=90)
#autopct自動百分比(percent)

效果展示:

->餅圖的8個常用引數(包括3個關鍵引數):

1:sizes每一個區域的值(輸入所有的值後自動按比例確認各自所佔的比例)

2:explode是否需要突出某部分(基礎值為0)

3:labels分類的標籤

4:* 注意前三個的數量要一致,而且必須按照上述的順序進行排列,後面的引數可以不論順序

5:radius半徑(基準為1)

6:autopct’%1.1f%%’ 餅圖上是否顯示資料資訊(百分比)

7:shadow是否有陰影(True/False注意大小寫)

8:startangle起始繪製角度(逆時針以第一個標籤開始旋轉繪製相應的扇形區域)

 

五:繪製圖形的儲存

由於我日常寫程式碼使用的是jupyter qtconsole,所以沒有使用到plt.show(),就基於不使用plt.show()的情況說明如何儲存:

在列印圖片的語句之後使用plt.savefig(“F:/xxx.png/.jpg”),也可以省略字尾,預設儲存為.png格式圖片,

舉個例子:

plt.pie(sizes,explode,labels,autopct="%1.2f%%",shadow=True,startangle=90) 

# fig = plt.gcf()    測試的時候使用

plt.savefig("f:/aaa.png")

Bingo~成功儲存,測試沒有出現儲存成空白圖片的情況。

 

*六:附加

1:用到了我在文章開頭的引數了嗎?

      有了那些引數可以給圖形加上一些修飾(x、y軸標題,限制x、y軸取值來改變影象所處的位置等等~);

2:上面提到的所有引數大部分是通用的,例如餅圖中的透明度alpha引數也可以用到條狀圖中;

3:引數都是預先定義的不免有些麻煩,這就不免令我們想到是不是可以通過手動輸入引數呢?

      那麼如何使用input()輸入引數呢?可是input()輸入的是字串而且還會有空格

      那麼就自己編寫一個demo_function來對input()函式的輸入進行轉換吧~

      相應函式--->>傳送門(點我即達~)

 

 

 

 

****************************************************************************************************************************************

 

             最快的腳步不是跨越,而是繼續,最慢的步伐不是小步,而是徘徊。
 

****************************************************************************************************************************************