import numpy
# random.rand(100,1) 生成一个值为0~1内随机分布的100行1列的列表,参数为列表的shape(100*1
# random.randn(100,1) 生成一组符合正态分布,均值为0,标准差为1的列表,参数为列表的shape(100*1
X = 2 * numpy.random.rand(100, 1)
Y = 4 + 3 * X + numpy.random.randn(100, 1)
import matplotlib.pyplot as plt
# 有了X和Y数据之后,可以通过plot(x,y)函数来画出图形,并通过plt.show()显示
#*************************plot函数拓展**********************
# 可认为Matplotlib绘制的图形都在一个默认的figure里
# 也可自己创建figure,可以控制更多的参数
# 创建一个figure,设置大小为(8,4)
plt.figure(figsize = (8, 4))
#设置横轴和纵轴
plt.xlim((0, 2))
plt.ylim((-14, 14))
plt.xlabel('X轴')
plt.ylabel('y轴')
# 也可以通过 xticks 和 yticks 来设置轴的刻度
#plt.xticks((0, 0.5, 1, 1.5, 2))
# 配置下后台字体即可解决中文字体显示不正常的问题
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
plt.title("线性随机数据回归") # 正常显示中名文的图
# 增加了一个字符串参数,'y*-',其中y表示黄色,*表示星标的点,-表示实线(散点图无第三个属性)
# 颜色不再赘述,第二个属性:【点.;像素,;圆o;方形s;三角形^】
# 设置 label 和 legend 的目的就是为了区分出每个数据对应的图形名称
plt.plot(X, -Y, 'o', label = "测试A")
plt.plot(X, Y, 'o', label = "测试B")
plt.legend(loc = 'best')
plt.show()