4.1 線形圖

4.1 線形圖

數據可視化是形象展示數據的主要手段,也是數據分析的重要組成部分。Matplotlib是一個基於Python的圖形可視化工具,支持多種圖形的繪製,並支持完整的圖標樣式和個性化設置,功能強大並易學易用。

安裝:

python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

注意 :官方推薦使用用戶安裝,使用--user標誌執行pip(警告:不要使用sudo pip,這可能會導致問題)。這將為當前用戶安裝包,不寫入系統目錄。

Matplotlib需要大量的依賴

· NumPy

· setuptools

· dateutil

· pyparsing

· libpng

· pytz

· FreeType

· cycler

· six

Matplotlib圖表類型

4.1.1 繪製線形圖

# 以別名plt導入pyplot模塊

<code>import matplotlib.pyplot as plt 
# 準備數據
x = [1,2,3,4]
y = [1,4,9,16]
# 繪製數據
plt.plot(x, y, label='linear')
# 添加圖例
plt.legend()
# 顯示圖形
plt.show()/<code>


4.1 線形圖


基本概念

4.1 線形圖

· 圖例

是位於圖形一角或一側的說明,解釋各種符號和顏色的意義,有助於更好地理解圖形。

· Figure/繪圖

Figure表示整個繪圖,可以理解為一個畫布,繪圖中可以包含多個子圖形。如果不顯式創建figure,會使用默認的figure。

在matplotlib中,整個圖像為一個Figure對象。在Figure對象中可以包含一個或者多個Axes對象。每個Axes(ax)對象都是一個擁有自己座標系統的繪圖區域。

· Subplot/子圖

Subplot是指一個具體的數據圖形。

· 座標系/Axes

通常一個數據圖形包含一個2d/3d座標系,數據圖形除了通過創建子圖(subplot)創建,還可以通過創建座標系創建。這兩種的區別在於接受的參數不同,通過座標系創建圖形,可以指定絕對位置,具體可以看函數說明。大多數情況下,使用subplot創建圖形。

· 座標軸/Axis

座標系中的座標軸。

· 藝術家/Artist

表示繪圖對象,例如:文本對象、線條對象、集合對象等等。

plot()

線形圖是最基本的圖表類型,常用於繪製連續的數據。通過繪製線形圖,可以表現出數據的一種趨勢變化。

Matplotlib的plot函數用來繪製線形圖,其格式如下所示。

matplotlib.pyplot.plot(*args, kwargs):**

args是一個可變長度參數,允許使用可選格式字符串的多個x,y對,並且x可以省略,當x省略時,通過y的索引0, 1,…,n-1作為x

kwargs參數也是一個可變長度參數,允許對線形圖的顯示效果進行設置

<code>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)
#自動採用兩種顏色
# 顯示圖像
plt.show()/<code>
4.1 線形圖


<code>%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt 
x=np.linspace(-np.pi,np.pi,250) 
y,z=np.sin(x),np.cos(x) 
plt.plot(x,y,x,z) 
# 傳入2對數據
plt.plot([1,2,1,3]) 
#缺省x,只有y,則x使用y的下標,即:(0,1),(1,2),(2,1),(3,3)/<code>
4.1 線形圖

程序分析

%matplotlib inline的作用是在Jupyter Notebook中顯示圖形,使用其他開發工具,這行代碼可以不要。

import matplotlib.pyplot as plt的作用是導入matplotlib的pyplot模塊。

x=np.linspace(-np.pi,np.pi,250)的作用是生成一個由250浮點數組成的數組。

y,z=np.sin(x),np.cos(x)的作用是計算出數組的正弦、餘弦值,並賦值給y和z變量。

plt.plot(x,y,x,z)繪製兩條曲線,分別是正弦和餘弦曲線。

plt.plot([0.5,1,-0.5,1])繪製線形圖,其中y軸的值是[0.5,1,-0.5,1],而x軸的值是[0, 1, 2, 3],即數組[0.5,1,-0.5,1]的索引。

4.1.2 顏色設置

在沒有設置線的顏色時,Matplotlib會自動給線形圖設置線的顏色,當然還可以通過參數設定線的顏色。

plot()函數用參數color設置曲線的顏色,color的值有多種指定方式。

  • RGB或者RGBA模式由[0, 1]之間的浮點數組成的元組表示,比如(0.5, 0.3, 0.6)或(0.5,0.5, 0.6, 0.2)。也可以由十六進制的字符串表示,比如'#639a7e'或'#cccccc'。
  • 灰度方式,由[0, 1]之間的浮點數的字符串表示,比如'0.3'。
  • 純色純色可以使用簡稱或全稱。簡稱為:'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w';全稱為:blue、green、red、cyan、magenta、yellow、black、white。Matplotlib中只要用到顏色,都可以使用上述色彩表達方法。
4.1 線形圖

<code>%matplotlib inline 
import numpy as np 
import matplotlib.pyplot as plt 
x = np.linspace(-np.pi,np.pi,250) 
y,z = np.sin(x),np.cos(x) 
plt.plot(x,y,color='#aa6699') 
plt.plot(x,z,color=(0.9, 0.2, 0.1))/<code>
4.1 線形圖

程序分析

  • 1. plt.plot(x,y,color='#66ff99')通過RGB的十六機制方式設置線的顏色。
  • 1. plt.plot(x,z,color=(0.9, 0.2, 0.1))通過浮點數設置線的顏色。

4.1.3 線型設置

線型是指線的樣式,常見的有實線、虛線等。plot函數通過linestyle參數來確定線的樣式。

<code>%matplotlib inline 
import numpy as np
 import matplotlib.pyplot as plt
 x = np.linspace(-np.pi,np.pi,250) 
y,z = np.sin(x),np.cos(x) 
plt.plot(x,y,linestyle='--') 
plt.plot(x,z,linestyle='-.')/<code>
4.1 線形圖

4.1.4 座標點設置

任何曲線都是根據座標點而來的,而座標點通過marker、markersize、markerfacecolor和markevery等參數設置。

參數marker設置座標點的形狀

參數markersize指定座標點的大小。

參數arkerfaceclolr指定座標點的顏色。

參數markervery是一個數組,指定使用規定效果來標記的座標點。

#設置座標點

<code>%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi,np.pi,25)
y,z = np.sin(x),np.cos(x)
print(x)
plt.plot(x,y,marker='D',markersize=6,markerfacecolor='m',markevery=[3,6,10,24])
plt.plot(x,z,marker='o',markersize=12,markerfacecolor='b',markevery=[3,6,10,24])/<code>

[-3.14159265 -2.87979327 -2.61799388 -2.35619449 -2.0943951 -1.83259571 -1.57079633 -1.30899694 -1.04719755 -0.78539816 -0.52359878 -0.26179939 0. 0.26179939 0.52359878 0.78539816 1.04719755 1.30899694 1.57079633 1.83259571 2.0943951 2.35619449 2.61799388 2.87979327 3.14159265]

4.1 線形圖

<code>%matplotlib inline
 import numpy as np
 import matplotlib.pyplot as plt 
x = np.linspace(-np.pi,np.pi,5) 
y,z = np.sin(x),np.cos(x) 
plt.plot(x,y,marker='D') 
plt.plot(x,z,marker='o')/<code>
4.1 線形圖

4.1.5 線寬設置

函數plot使用linewidth參數設置線寬,其取值可以使整數或浮點數。

<code>%matplotlib inline 
import numpy as np 
import matplotlib.pyplot as plt 
x = np.linspace(-np.pi,np.pi,25) 
y,z = np.sin(x),np.cos(x) 
plt.plot(x,y,marker='D',linewidth=1)
 plt.plot(x,z,marker='o',linewidth=5)/<code>
4.1 線形圖


分享到:


相關文章: