python matplotlib.scatter 用法

# -*- coding: utf-8 -*-
#导入模块
from matplotlib import pyplot as plt
import numpy as np     
import pprint          
from math import pi,sin
A1=np.array([0,0])
B1=np.array(([2,0],[0,2]))

#以 A1为均值,B1为协方差矩阵,生成正态分布的随机数 每次生成不一样
C1=np.random.multivariate_normal(A1,B1,200)
C2=np.random.multivariate_normal(A1+0.2,B1+0.2,200)

#画布的大小为长8cm高6cm
plt.figure(figsize=(8,6))

#绘图,参数s:点的大小,marker:点的形状 alpha:点的亮度,label:标签
plt.scatter(C1[:,0],C1[:,1],s=30,color='red',marker='o',alpha=0.5,label='C1')   #[:,0]每列第一个  [:,1]每列第二个
plt.scatter(C2[:,0],C2[:,1],s=30,color='blue',marker='x',alpha=0.5,label='C2')

#图注部分
plt.title('basic scatter plot ')
plt.xlabel('variables x')
plt.ylabel('variables y')

plt.legend(loc='upper right') #这个必须有

plt.show() #打印展示
image.png
# -*- coding: utf-8 -*-
#导入模块
from matplotlib import pyplot as plt
import numpy as np           

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]                                                                      
                                                                                                                           
fig = plt.figure(figsize=(8,6))  #设置画布大小                                                                                   
plt.scatter(x_coords, y_coords, marker='s', s=50)                                                                          
                                                                                                                           
for x, y in zip(x_coords, y_coords): #接受x,y返回元祖列表[(0.13,0.75),......]                                                      
    plt.annotate('(%s, %s)' %(x, y),xy=(x, y),xytext=(0,-10),textcoords='offset points',ha='center',va='top') 
    # pyplot.annatate是pyplot模块提供的一个注释函数,xy为点的坐标  xytext为注解内容位置坐标
                                                                                                                           
plt.xlim([0,1]) #设置绘图X边界                                                                                                   
plt.ylim([0,1]) #设置绘图Y边界                                                                                                   
plt.show()
image.png
# -*- coding: utf-8 -*-
#导入模块
from matplotlib import pyplot as plt
import numpy as np   

fig = plt.figure(figsize=(8,6))
mean = np.array([0,0])  #给定均值
covariance = np.array([[1,0],[0,1]])  #协方差
x = np.random.multivariate_normal(mean,covariance, 1000)  # 生成多元正态分布随机向量,数字表散点数量
plt.grid(True)  #网格线挂起
R = x**2 #这里很关键 制造s差异 离原点越远越大
R_sum = R.sum(axis=1)  #axis=0的时候,其实是沿着第一个(水平X)轴进行相加;axis=1的时候是按照第二个(Y)轴,由于是平方和 不管正向还是负向都变大
plt.scatter(x[:, 0], x[:, 1],color='gray',marker='o',s=32. * R_sum,edgecolor='black',alpha=0.5)
plt.show()
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容