• 跟我一起用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=
    ',x)
    		print(y)
    		print('y=
    ',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()
    


  • 相关阅读:
    Kafka Eagle安装
    CentOS下OpenJDK设置JAVA_HOME
    设计模式:解释器模式
    Typora主题推荐
    SpringMVC的<mvc:annotation-driven />
    SpringMVC的视图解析器
    数字化营销
    《计算广告》第二版思维导图
    舆情计算
    实时数仓
  • 原文地址:https://www.cnblogs.com/Michelle-Yang/p/6735001.html
Copyright © 2020-2023  润新知