python學習第12周: Python matplotlib

matplotlib是一個數據可視化工具.

from matplotlib import pyplot

目錄

常規繪圖方法

Exercise


常規繪圖方法

pyplot.plot(X, Y)           # 繪點。 X表示點集的橫座標,Y表示點集的縱座標
pyplot.show()               # 顯示

折線圖:

pyplot.plot(X, Y)

散點圖:

pyplot.scatter(X, Y)


Exercise

代碼:

import matplotlib.pyplot as plt
import numpy
import math
def func(x):
    y1 = numpy.sin(x-2)
    y2 = math.e ** (-x*x)
    return y1**2 * y2

x = numpy.linspace(0, 2, 1000)
y = func(x)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('y = f(x)')
plt.show()

 

解題思路:

這裏最主要是對numpy和matplotlib中的函數的使用。numpy.linspace(0, 2, 1000)生成一個以0爲起點,2爲終點,間隔相等,共1000個點的列表。plt.plot(x, y)根據x,y中對應的點繪製在圖上並且用直線將相鄰的點連接起來。

 

運行結果:

 

 

 

 

代碼:

import matplotlib.pyplot as plt
import numpy
import math
X = numpy.random.normal(size=(20, 10))
z = numpy.random.normal(size = 20)
b = numpy.random.normal(size = 10)
y = numpy.matmul(X, b) + z
b_  = numpy.linalg.lstsq(X, y, None)
b_ = b_[0]
plt.scatter(range(0, 10), b, color = 'red', marker = 'x', label = "real")
plt.scatter(range(0, 10), b_, color = 'blue', marker = '.', label = "estimate")
plt.show()

 

解題思路:

根據題意這裏需要使用最小二乘法來計算b的估計量,numpy.linalg.lstsq函數返回的第一個值就是b的估計量。scatter函數用於描繪散點圖marker表示的是節點的形狀,此處不知爲何,標籤無法顯示。

 

運行結果:

 

 

 

11.3

題目 

 

題解

import matplotlib.pyplot as plt
from scipy import stats
import numpy
import math
z = numpy.random.normal(size = 10000)
plt.hist (z , bins=25, normed=1, color='b' )
kde = stats.gaussian_kde(z.T)  # 構造多變量核密度評估函數  
density = kde(z.T)   # 給定一個樣本點,計算該樣本點的密度  
plt.scatter(z.T, density, marker = '.') 
plt.show()

 

解題思路

hist函數用於描繪柱狀圖。stats.gaussian_kde() 用於構造一個多變量核密度評估函數,density = kde(z.T) 根據給定的一個樣本點,計算該樣本點的密度。 

 

運行結果

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章