1.启动jupyter notebook
2.创建一个新的notebook,并导入matplotlib和numpy
#导入matplotlib
import matplotlib.pyplot as plt
#导入numpy
import numpy as np
一 : 基础知识讲解
1.绘制一个点
plt.scatter(3,5)
2.只显示图片
plt.scatter(3,5)
plt.show()
3.点默认为蓝色,可修改点的大小和颜色
# s指定大小 color指定颜色, r代表红色 g绿色 k黑色 y黄色
plt.scatter(3,5,s=200,color='r')
plt.show()
4.使用十六进制指定颜色
plt.scatter(3,5,s=200,color='#ff0000')
plt.show()
5.alpha指定透明度,值在0-1之间
plt.scatter(3,5,s=200,color='r',alpha=0.2)
plt.show()
6.marker可指定样式,常用的有o,*,+,.,d,D,h
plt.scatter(3,5,s=200,color='r',marker='*')
plt.show()
7.传入两个列表,分别可控制每个点的大小和颜色
x = [1,2,3,4]
y = [2,3,4,8]
plt.scatter(x,y,s=[20,40,80,200],color=['r','g','b','y'])
plt.show()
8.绘制非线性图
x1 = np.random.randint(1,10,size=(10,2))
x2 = np.random.randint(1,10,size=(10,2))
#输出x1
x1
第一列作为x轴,第二列作为y轴
plt.scatter(x1[:,0],x1[:,1],color='r')
plt.scatter(x2[:,0],x2[:,1],color='g')
plt.show()
二 : 案例联系
1.导入儿童年龄数据,当前目录下的X_height.txt保存了儿童身高数据
#导儿童身高数据
X=np.loadtxt('X_height.txt')
X
2.创建一个索引数组,表示女孩和男孩的数据
y = np.concatenate([np.zeros(18),np.ones(18)])
y
3.获取女孩的18条数据
#获取女孩年龄身高数据
X[y==0]
4.获取男孩的18条数据
#获取男孩年龄身高数据
X[y==1]
5.获取女孩的第一列年龄数据
X[y==0,0]
6.获取女孩的第二列身高数据
X[y==0,1]
7.绘制散点图,传入女孩和男孩的数据
plt.scatter(X[y==0,0],X[y==0,1],color='r')
plt.scatter(X[y==1,0],X[y==1,1],color='g')
plt.show()
从上面的图形可以看出,男孩在13岁左右,增加速度慢慢的超过了女孩