matplotlib繪圖基本用法-轉自(http://blog.csdn.net/mao19931004/article/details/51915016)

本文轉載自http://blog.csdn.net/mao19931004/article/details/51915016javascript

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">












Matplotlib簡單入門學習 - CSDN博客






css

Matplotlib簡單入門學習

標籤: python matplotlib
7611人閱讀 評論(0) 收藏 舉報
分類:

由於學習機器學習以及試圖經過python實現相應的算法,所以學習了Matplotlib中的畫圖,那麼就問到,問啥不用matlab呢,答:多一門技術,多一口飯;並且發現Matplotlib的畫圖功能仍是蠻強大的,此次僅僅只是學習了之前在MATLAB裏面會的相應的東西,而後學習一下在python中對應的知識。java

matplotlib在Python中應用最多的2D圖像的繪圖工具包,使用matplotlib可以很是簡單的可視化數據。在matplotlib中使用最多的模塊就是pyplot。pyplot很是接近Matlab的繪圖實現,並且大多數的命令及其相似Matlab.固然,與Matlab相似,須要不少的數學運算,所以numpy這個組件一樣是必不可少的。因此不少人說python+matplotlib+numpy就是MATLAB。固然在此以前,須要配置好相應的環境,在Linux 14.04下版本,利用sublime Text 3能夠很是快捷的搭建好開發環境,能夠參見博客http://blog.csdn.net/mao19931004/article/details/51834616python

首先,在matplotlib建議使用別名,引入包,這樣方便之後模塊的使用,通常以如下兩句開始:nginx

import numpy as np
import matplotlib.pyplot as plt


接下來以繪製正弦餘弦函數曲線爲例,介紹相應的函數。算法

  • 使用默認的繪圖屬性繪圖

x=np.linspace(-np.pi,np.pi,256,endpoint=True)
C,S=np.cos(x),np.sin(x)
plt.plot(x,C)
plt.plot(x,S)

  • 對線條的顏色,寬度進行設置,就像在matlab中同樣:

plt.plot(x,C,color='red',linewidth=2.5,linestyle='-')
plt.plot(x,S,color='blue',linewidth=2.5,linestyle='-')


  • plot函數的講解

上面介紹了簡單的繪圖,用的基本上都是plot,所以有必要對plot函數進行簡單的介紹。官網參考網址:plot使用。熟悉Matlab的人對plot不會陌生,在matplotlib中的使用方式大體和Matlab中是一致的,使用plot,能夠對點的標記的樣式以及線條的樣式進行設置。ubuntu

函數的聲明爲:matplotlib.pyplot.plot(*args**kwargs)。args的參數的長度是不定 的,能夠設置不少的屬性,kwargs主要是應用於設置線條的屬性。對於標註和線條的樣式,能夠經過簡單的字符來表示:小程序

以及標註和線條的顏色:windows

固然線條的顏色能夠以其餘方式定製。好比16進制的字符串('#008000')或者是RGB、RGBA元組的方式RGB or RGBA ((0,1,0,1)) 來實現不一樣的顏色。

在接下來會應用到更多的屬性。對於Line2D的具體細節,也就是線條的屬性等,能夠進一步查閱Line2D.

  • 設置橫軸、縱軸的界限以及標註

不少時候,須要設置橫軸和縱軸的界面,從而獲得更加清晰明瞭的圖形:

plt.xlim(X.min()*1.1, X.max()*1.1)
plt.ylim(C.min()*1.1, C.max()*1.1)
此外爲了更好的表示橫軸和縱軸數據的含義,能夠經過ticks對橫軸和縱軸的含義進行設置和定製。

plt.xlim(x.min()*1.1, x.max()*1.1)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
       [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

plt.ylim(C.min()*1.1,C.max()*1.1)
plt.yticks([-1, 0, +1],
       [r'$-1$', r'$0$', r'$+1$'])
看到yticks和xticks後面一串的數字,看到就以爲可能有點不知道寫的什麼,熟悉LaTex的人以爲咱們這種想法的人有點傻。其實就是很簡單的字符串,可是是爲了方便Latex去解析這段字符串。通常以r開始,中間的字符串用$字符串$包圍起來。這裏是matplotlib中的有關LaTex的使用介紹: Latex的使用

上面的\pi表明的意義就是π。如下是有關希臘字符的表示:

最後的顯示圖像爲:

這樣數據的意義就更加清晰明瞭了。

  • 設置Spines的位置。

Spines are the lines connecting the axis tick marks and noting the boundaries of the data area. They can be placed at arbitrary positions。

Spines應該能夠理解爲座標軸的位置。可是也不全是,由於它分爲上下左右四個位置,就如上圖的四個邊界,那麼左邊界和下邊界就是咱們一般認爲的橫座標和縱座標。咱們能夠將上邊界和右邊界隱藏,同時將左邊界和下邊界移動至中心的位置,看看效果:

這樣就和咱們一般畫數學曲線的方式就同樣了。

實現的完整代碼是:

import numpy as np
import matplotlib.pyplot as plt


ax = plt.subplot(111)

ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

x=np.linspace(-np.pi,np.pi,256,endpoint=True)
C,S=np.cos(x),np.sin(x)

plt.plot(x,C,color='red',linewidth=2.5,linestyle='-',label=r'$cos(t)$')
plt.plot(x,S,color='blue',linewidth=2.5,linestyle='-',label=r'$sin(t)$')

plt.xlim(x.min()*1.1, x.max()*1.1)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
       [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

plt.ylim(C.min()*1.1,C.max()*1.1)
plt.yticks([-1, 0, +1],
       [r'$-1$', r'$0$', r'$+1$'])
plt.show()

  • 添加圖例說明

說到做圖,固然必需要有圖例,圖例是幫助咱們理解曲線指代的類型,若是讓咱們不去仔細分析曲線,就能夠知道曲線指代的類型。好比上圖的正弦和餘弦,咱們要通過分析事後,才知道紅色是餘弦函數,藍色是正弦函數,所以圖例就很是重要的幫助咱們分析圖形。

在畫圖時候,咱們須要多線條加上label,這樣才能夠在最後將圖例顯示出來。

plt.plot(x,C,color='red',linewidth=2.5,linestyle='-',label=r'$cos(t)$')
plt.plot(x,S,color='blue',linewidth=2.5,linestyle='-',label=r'$sin(t)$')
plt.legend(loc='upper left',frameon=False)

位置的可選參數有:

函數的參數的關鍵字有:

大體的plot的繪圖方式入門就這麼多,固然plot還有不少不少的內容,須要的什麼比較好的方式繪圖,就能夠去參閱相關的資料,固然之後若是遇到新的內容,會繼續介紹。

查看評論

一份很是好的Matplotlib 教程

Matplotlib 教程 發表於 2014 年 09 月 11 日 | 分類於 Algorithm and Computer Science | 本文共被圍觀 52922 ...
  • u011497262
  • u011497262
  • 2016年08月26日 10:05
  • 46921

Python 繪圖 Matplotlib 快速參考手冊

http://www.labri.fr/perso/nrougier/teaching/matplotlib/#quick-references 1 做圖函數 1.1 默認參數做圖import n...
  • claroja
  • claroja
  • 2017年04月18日 13:34
  • 2201

Python 數據科學入門教程:Matplotlib

Matplotlib 入門教程 來源:Introduction to Matplotlib and basic line 譯者:飛龍 協議:CC BY-NC-SA 4.0 ...
  • wizardforcel
  • wizardforcel
  • 2017年01月13日 11:45
  • 21206

python matplotlib模塊——繪製三維圖形、三維數據散點圖

python matplotlib模塊,是擴展的MATLAB的一個繪圖工具庫。他能夠繪製各類圖形,但是最近最的一個小程序,獲得一些三維的數據點圖,就學習了下python中的matplotlib模塊,如...
  • Eddy_zheng
  • Eddy_zheng
  • 2015年09月24日 16:55
  • 61848

Matplotlib繪圖和可視化

Matplotlib繪圖和可視化Matplotlib繪圖和可視化 matplotlib API 入門 Figure和Subplot 顏色標記和線型 刻度標籤和圖例 註解以及在Subplot上繪圖 將圖...
  • ice_martin
  • ice_martin
  • 2017年03月12日 14:05
  • 1794

使用 python Matplotlib 庫繪圖

Matplotlib的安裝能夠參見 官網連接 http://matplotlib.org/users/installing.html 下面總結步驟以下: windows 注意下載.exe格式 直接安...
  • gfsfg8545
  • gfsfg8545
  • 2013年08月02日 12:59
  • 44921

matplotlib

  • 2015年09月11日 16:33
  • 3.93MB
  • 下載

matplotlib繪圖實例:pyplot、pylab模塊及做圖參數

http://blog.csdn.net/pipisorry/article/details/40005163 Matplotlib繪圖實例(使用pyplot模塊) matplotli...
  • pipisorry
  • pipisorry
  • 2014年10月12日 00:47
  • 55438

python科學計算學習二:matplotlib繪圖(極座標 3D繪圖等)(3)

matplotlib作圖
  • u012192662
  • u012192662
  • 2014年03月05日 11:40
  • 30347

【python圖像處理】python繪製3D圖形

3D圖形在數據分析、數據建模、圖形和圖像處理等領域中都有着普遍的應用,下面將給你們介紹一下如何使用python進行3D圖形的繪製,包括3D散點、3D表面、3D輪廓、3D直線(曲線)以及3D文字等的繪製...
  • guduruyu
  • guduruyu
  • 2017年09月21日 11:45
  • 4624
    我的資料
    專欄達人 鍥而不捨
    等級:
    訪問量: 12萬+
    積分: 1943
    排名: 2萬+
    博客專欄
    最新評論
關閉

posted on 2018-03-13 15:35 bugstar 閱讀(...) 評論(...) 編輯 收藏

相關文章
相關標籤/搜索