跟我一塊兒用python畫你所想吧!

0.庫的引入
要想畫圖,咱們先倒入兩個庫.
 import numpy as np
 import matplotlib.pyplot as plt
:如下代碼全都基於導入這兩個庫的前提下編寫的.
1.標準的正太分佈
 mu=0
 sigma=1
 x=np.linspace(mu-3*sigma,mu+3*sigma,100)#均值加減3倍的方差,51
 y=np.exp(-(x-mu)**2/(2*sigma**2))/(math.sqrt(2*math.pi)*sigma)
 print(x.shape)
 print('x=\n',x)
 print(y)
 print('y=\n',y)
 plt.figure(facecolor='w')#背景顏色爲白色
 plt.plot(x,y,'r-',x,y,'go',linewidth=2,markersize=8)
 plt.xlabel('X',fontsize=15)
 plt.ylabel('Y',fontsize=15)
 plt.title('Gauss Distribution',fontsize=18)
 plt.grid(True)
 plt.show()
2.損失函數:Logistic損失(-1,1)/SVM Hinge損失/0/1損失
 plt.figure(figsize=(10,8))#英寸
 x=np.array(np.linspace(-2,3,1001,dtype=np.float))
 y_logit=np.log(1+np.exp(-x))/math.log(2)
 y_boost=np.exp(-x)
 y_01=x<0
 y_hinge=1.0-x
 y_hinge[y_hinge<0]=0
 plt.plot(x,y_logit,'r-',label='Logistic Loss',linewidth=2)
 plt.plot(x,y_01,'g-',label='0/1 Loss',linewidth=2)#利用布爾值實現0 1損失
 plt.plot(x,y_hinge,'b-',label='Hinge Loss',linewidth=2)
 plt.grid(True)
 plt.legend(loc='lower left')#upper,lower,left,right
 plt.savefig('1.png')
 plt.show()
3 x^x
 def f(x):
     y=np.ones_like(x)#保持和x同樣的數據類型和格式,只不過數值大小爲1
        i=x>0
        y[i]=np.power(x[i],x[i])
    i=x<0
        y[i]=np.power(-x[i],-x[i])
     return y
 plt.figure(facecolor='w')
 x=np.linspace(-1.3,1.3,1001)
 y=f(x)
 plt.grid()
 plt.legend(loc='upper right')
 plt.plot(x,y,'g-',label='x^x',linewidth=2)
 plt.xlabel('X',fontsize=15)
 plt.ylabel('Y',fontsize=15)
 plt.title('Fig1',fontsize=15)
 plt.show()
4胸型線
 x=np.arange(1,0,-0.001)
 y=(-3*x*np.log(x)+np.exp(-(40*(x-1/np.e))**4)/25)/2
 plt.figure(figsize=(5,7))
 plt.plot(y,x,'r-',linewidth =2)
 plt.grid(True)
 # plt.title(u'胸型線',fontsize=20)
 plt.savefig('breast.png')
 plt.show()
5 心型線
 t=np.linspace(0,2*np.pi,100)
 x=16*np.sin(t)**3
 y=13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-np.cos(4*t)
 plt.plot(x,y,'r-',linewidth=2)
 plt.grid(True)
 plt.show()
6漸開線
 t=np.linspace(0,50,1000)
 x=t*np.sin(t)+np.cos(t)
 y=np.sin(t)-t*np.cos(t)
 plt.plot(x,y,'g-',linewidth=2)
 plt.grid(True)
 plt.show()
相關文章
相關標籤/搜索