您好,登錄后才能下訂單哦!
這篇文章主要介紹如何使用Python中yLab繪制折線圖,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Python
的可視化工具有很多,數不勝數,各有優劣。本文就對其中的pylab
進行介紹。之所以介紹這一款,是因為它和Matlab
的強烈相似度,如果你使用過Matlab
,那么相信pylab
你也會很快上手。
簡單的plot函數
pylab
繪圖,最基本的函數就是plot
函數,當然如果想要將圖片顯示出來,需要額外添加一個show
函數。
在python
的繪圖中,numpy
是一個非常常用的工具,不太熟悉的可以參考博主的另一篇博文:【Python】Python之Numpy的超實用基礎詳細教程。
例如:
import pylab import numpy as np if __name__ == "__main__": x = np.arange(0, 1, 0.05) y = [i*i for i in np.arange(0, 1, 0.05)] pylab.plot(x, y) pylab.show()
運行生成的圖片為:
規定兩個序列,只需要兩個序列的長度相等,就可以以其中一個序列為橫坐標,零一個序列為縱坐標,進行繪制。
但是也看得出來,這樣的圖片是比較寒磣的,簡單樸素。我們可以對線條進行一些修飾,比如線型、顏色、點型等等。只需要在plot
函數中添加一個參數即可。這個參數用法比較靈活,特可以從下表的值中進行組合選擇:
顏色 | 線型 | 點型 |
---|---|---|
‘b' (藍色) | ‘-' (實線) | ‘,' (像素) |
‘g' (綠色) | ‘–' (虛線) | ‘o' (圓形) |
‘r' (紅色) | ‘-.' (虛點線) | ‘^' (上三角) |
‘y' (黃色) | ‘:' (點線) | ‘s' (方形) |
‘k' (黑色) | ‘.' (點) | ‘+' (加號) |
‘w' (藍色) | … | ‘x' (叉形) |
… | … |
例如:
import pylab import numpy as np if __name__ == "__main__": x = np.arange(0, 1, 0.05) y = [i*i for i in np.arange(0, 1, 0.05)] pylab.plot(x, y, "b-.+") pylab.show()
運行生成的圖片為:
如果,還想增加圖例,x
軸、y
軸的含義和刻度,標題的信息,也可以通過添加一些函數來進行。
例如:
# -*- coding:UTF-8 -*- import pylab import numpy as np if __name__ == "__main__": x = np.arange(0, 1, 0.05) y = [i*i for i in np.arange(0, 1, 0.05)] pylab.plot(x, y, "b-.+", label='line') pylab.xlabel('x') # x、y軸的介紹 pylab.ylabel('y') pylab.xlim([0, 1]) # x、y軸的長度區間 pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) # x、y軸的刻度 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y') # x、y的標題 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) # 圖例的位置 pylab.show()
運行生成的圖片為:
是不是瞬間就感覺豐富了許多!
多折線繪制
當然,在很多時刻需要繪制多條折線。很明顯,可以選擇將多條直線繪制到同一張圖片上,也可以選擇在圖片上繪制不同的子圖。
多折線同圖
將多條折線繪制到同一張圖片上,這非常簡單,直接再plot
一條直線就可以了。
例如:
# -*- coding:UTF-8 -*- import pylab import numpy as np if __name__ == "__main__": x = np.arange(0, 1, 0.05) y1 = [i*i for i in np.arange(0, 1, 0.05)] y2 = [i+i for i in np.arange(0, 1, 0.05)] pylab.plot(x, y1, "b-.+", label='line1') pylab.plot(x, y2, "r-.+", label='line2') pylab.xlabel('x') pylab.ylabel('y') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.show()
多折線不同圖
將多條折線繪制到圖片上的不同子圖上,這就需要通過subplot
進行區域分割和指定。
subplot(numRows, numCols, plotNum)
該函數會將這個圖片分為numRows行、nulCols列,然后按照從左到右、從上到下的順序進行編號,最左上的編號為1。plotNum參數指定子圖的所在區域。
例如:
# -*- coding:UTF-8 -*- import pylab import numpy as np if __name__ == "__main__": x = np.arange(0, 1, 0.05) y1 = [i*i for i in np.arange(0, 1, 0.05)] y2 = [i+i for i in np.arange(0, 1, 0.05)] pylab.subplot(1, 2, 1) pylab.plot(x, y1, "b-.+", label='line1') pylab.xlabel('x') pylab.ylabel('y1') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y1') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.subplot(1, 2, 2) pylab.plot(x, y2, "r-.+", label='line2') pylab.xlabel('x') pylab.ylabel('y2') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y2') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.show()
運行生成的圖片為:
這是比較規整的例子,如果是不規整的呢?例如,第一行兩張圖,第二行一張圖。這就要稍微變通一下了。
第一行其實是按照2*2
分法的第一個和第二個,第二行其實是按照2*1
分法的第二行。這樣思考就會迎刃而解了。
# -*- coding:UTF-8 -*- import pylab import numpy as np if __name__ == "__main__": x = np.arange(0, 1, 0.05) y1 = [i*i for i in np.arange(0, 1, 0.05)] y2 = [i+i for i in np.arange(0, 1, 0.05)] pylab.subplot(2, 2, 1) pylab.plot(x, y1, "b-.+", label='line1') pylab.xlabel('x') pylab.ylabel('y1') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y1') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.subplot(2, 2, 2) pylab.plot(x, y2, "r-.+", label='line2') pylab.xlabel('x') pylab.ylabel('y2') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y2') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.subplot(2, 1, 2) pylab.plot(x, y1, "b-.+", label='line1') pylab.plot(x, y2, "r-.+", label='line2') pylab.xlabel('x') pylab.ylabel('y') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.show()
運行生成的圖片為:
其他函數
除了上述函數之外,還有一些其他的常用函數。
pylab.grid() # 網格繪制 pylab.savefig(圖片存儲路徑, dpi=200) # 保存為圖片
掌握了這些基本的折現圖的繪制函數,相信一般的折線圖都可以輕松掌握。
Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。
以上是“如何使用Python中yLab繪制折線圖”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。