Python 使用matplotlib 画数学公式图与散点图


        

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,10,1000)
y=np.sin(x)
z=cos(x^2)
   
plt.figure(figsize=(8,4))
 
plt.plot(x,y,label='$sin(x)$',color='red',linewidth=3)
 
plt.plot(x,z,'g--',label='$cos(x^2)$',lw=3)

plt.xlabel('Time(s)')
plt.ylabel('volt')
plt.title('First python firgure')
plt.ylim(-1.2,1.2)
plt.legend()
 
plt.show()

我们调用numpy的方法sin() 和 cos() 

 用linspace()得到1000个点。

 linspace (起点,终点,元素个数)

plt.plot(x,y,label='$sin(x)$',color='red',linewidth=3)
plot() 传入点,标签 和颜色

plt.xlabel('Time(s)')
plt.ylabel('volt')

传入xy轴标签


plt.title('First python firgure')
plt.ylim(-1.2,1.2)
设置图片标题,和y轴范围。

我们得到这样的图

             Python 使用matplotlib 画数学公式图与散点图_第1张图片

画散点图是我们使用scatter()

#-*-coding:utf-8-*
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
def file2matrix(filename):  
    
    fr = open(filename)  
    arrayOLines = fr.readlines()  
    numberOfLines = len(arrayOLines)  
    
    returnMat = np.zeros((numberOfLines,2))  
    classLabelVector = []  
    index =0  
    for line in arrayOLines:  
        line = line.strip()  
        listFormLine = line.split(' ')  
        returnMat[index,:] = listFormLine[0:2]  
        classLabelVector.append(int(listFormLine[-1]))  
        index += 1  
    return returnMat, classLabelVector  
matrix, labels = file2matrix('Train.txt') 
print matrix 
print labels 

plt.figure(figsize=(8, 5), dpi=80) 
axes = plt.subplot(111) 
type1_x = []
type1_y = []
type2_x = []
type2_y = [] 
print 'range(len(labels)):' 
print range(len(labels)) 
for i in range(len(labels)): 
    if labels[i] == 0: 
        type1_x.append(matrix[i][0]) 
        type1_y.append(matrix[i][1]) 
    if labels[i] == 1: 
        type2_x.append(matrix[i][0]) 
        type2_y.append(matrix[i][1]) 
        #print i, ':', labels[i], ':', type(labels[i]) 
type1 = axes.scatter(type1_x, type1_y,s=40, c='red' ) 
type2 = axes.scatter(type2_x, type2_y, s=40, c='green')
W1 = 1.23924482
W2 = 1.59913719
B = -6.67130613
x = np.linspace(-4,10,200)
y = (-W1/W2)*x+(-B/W2)
axes.plot(x,y,'b',lw=3)
#plt.scatter(matrix[:, 0], matrix[:, 1], s=20 * numpy.array(labels), 
#             c=50 * numpy.array(labels), marker='o', 
#             label='test') 
plt.xlabel('x1') 
plt.ylabel('x2') 
axes.legend((type1, type2), ('0', '1'),loc=1) 
plt.show()

我们从Train.txt得到数据。我们得到了这样的图

Python 使用matplotlib 画数学公式图与散点图_第2张图片


你可能感兴趣的:(Python 使用matplotlib 画数学公式图与散点图)