import matplotlib.pyplot as plt
import numpy as np
画散点图
#画散点图,plt.scatter(x,y)
plt.scatter(np.arange(5),np.arange(5))
plt.show()
x = np.random.normal(0,1,500)
y = np.random.normal(0,1,500)
plt.scatter(x,y,s=50,c='b',alpha=0.5)
#s表示点的大小,c表示点的颜色,b是指蓝色,alpha是指透明度
#设置xy范围
plt.xlim((-2,2))
plt.ylim((-2,2))
#因为什么都没有传入,所以意思是不显示坐标轴的数字
plt.xticks(())
plt.yticks(())
plt.show()
画直方图
x = np.arange(10)
y = 2**x + 10
plt.bar(x,y)
plt.show()
x = np.arange(10)
y = 2**x + 10
plt.bar(x,-y)
plt.show()
x = np.arange(10)
y = 2**x + 10
plt.bar(x,y,facecolor='#9999ff',edgecolor='white')
#facecolor设置柱体的颜色,edgecolor设置柱体边框的颜色
plt.show()
x = np.arange(10)
y = 2**x + 10
plt.bar(x,y,facecolor='#9999ff',edgecolor='white')
#facecolor设置柱体的颜色,edgecolor设置柱体边框的颜色
#若是没有zip的话,一次只能读取一个x或者一个y
#若是有了zip,可以将x,y看成整体,一次读取一个x和一个y
for x,y in zip(x,y):
#添加坐标描述,即每个柱体旁边写上它的y值,ha和va都是描述标记位置的
plt.text(x+0.4,y,'%.2f' % y,ha='center',va='bottom')
plt.show()
x = np.arange(10)
y = 2**x + 10
plt.bar(x,y,facecolor='#9999ff',edgecolor='white')
#facecolor设置柱体的颜色,edgecolor设置柱体边框的颜色
#若是没有zip的话,一次只能读取一个x或者一个y
#若是有了zip,可以将x,y看成整体,一次读取一个x和一个y
for x,y in zip(x,y):
#添加坐标描述,即每个柱体旁边写上它的y值,ha和va都是描述标记位置的
plt.text(x+0.4,y,'%.2f' % y,ha='center',va='top')
plt.show()
画等高线图
#生成高度
def f(x,y):
return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
x = np.linspace(-3,3,100)
y = np.linspace(-3,3,100)
X,Y = np.meshgrid(x,y)#将x,y的坐标传入一个网格中
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)
#alpha为透明度,cmap指图的颜色,8是指生成8+1个等高线
#去除掉坐标
plt.xticks()
plt.yticks()
plt.show()
#生成高度
def f(x,y):
return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
x = np.linspace(-3,3,100)
y = np.linspace(-3,3,100)
X,Y = np.meshgrid(x,y)#将x,y的坐标传入一个网格中
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)
#alpha为透明度,cmap指图的颜色,8是指生成8+1个等高线
#画等高线
c = plt.contour(X,Y,f(X,Y),8,colors='black',linewidths=.5)
plt.clabel(c,inline=True,fontsize=10)#fontsize表示字体大小
#inline=True表示描述在等高线里面,若是为false表示在等高线外面
#去除掉坐标
plt.xticks()
plt.yticks()
plt.show()