1. 画基本的散点图 plt.scatterdata[:, 0], data[:, 1], marker='o', color='r', label='class1', alpha=0.4)

np.random.multivariate_normal 根据均值和协方差生成多行列表

mu_vec1 = np.array([0, 0])
# 表示协方差
cov_mat1 = np.array([[2, 0], [0, 2]])
# 生成一个100行2列的正态分布
x1_samples = np.random.multivariate_normal(mu_vec1, cov_mat1, 100)
x2_samples = np.random.multivariate_normal(mu_vec1+0.2, cov_mat1+0.2, 100)
x3_samples = np.random.multivariate_normal(mu_vec1+0.4, cov_mat1+0.4, 100)
plt.scatter(x1_samples[:, 0], x1_samples[:, 1], marker='o', color='r', alpha=0.6, label='class1')
plt.scatter(x2_samples[:, 0], x2_samples[:, 1], marker='+', color='b', alpha=0.6, label='class2')
plt.scatter(x3_samples[:, 0], x3_samples[:, 1], marker='^', color='g', alpha=0.6, label='class3')
plt.legend()
plt.show()

2. 将散点图的文本显现出来,plt.annotate('%s, %s'%(x, y), xy=(x, y), xytext=(0.1, -15), textcoords='offset points', ha='center')

x_coords = [0.13, 0.22, 0.39, 0.59, 0.68, 0.74, 0.93]
y_coords = [0.75, 0.34, 0.44, 0.52, 0.80, 0.25, 0.55]

plt.scatter(x_coords, y_coords, color='r')
# 第一种方式
# for x, y  in zip(x_coords, y_coords):
#     plt.text(x, y, '{0}, {1}'.format(x, y))
# 第二种方式
for x, y in zip(x_coords, y_coords):
    # plt.annotate() 第一个参数是显现的值,xy表示标注值的位置, xytext表示离标准值的位置,textcoords表示将文本显现,ha表示对齐的方式
    plt.annotate('%s, %s'%(x, y), xy=(x, y), xytext=(0.1, -15), textcoords='offset points', ha='center')
plt.show()

3. 使用plt.scatter()里面的s属性来控制圆的大小,根据距离原点的距离来画圆的大小

mu_vec1 = np.array([0, 0])
# 标准差
cov_mat1 = np.array([[1, 0], [0, 1]])
X = np.random.multivariate_normal(mu_vec1, cov_mat1, 100)
plt.scatter(X[:, 0], X[:, 1], s=((X[:, 0]**2 + X[:, 1]**2 )* 20), color='gray')

plt.show()

posted on 2019-01-08 13:29  python我的最爱  阅读(536)  评论(0编辑  收藏  举报