Python可视化中的Matplotlib(6.散点图以及详细参数、为图形添加文字、注释、箭头以及它们的参数)

1. 散点图  

     散点图需要两个参数x,y , 但此时,x不是表示x轴的刻度,而是每个点的横轴坐标!

   散点图 scatter() 参数说明:

                  (1) color = 'r': 设置颜色

                  (2) s = 50; 设置点的大小 (值越大,点就越大)

                  (3) marker : 设置点的样式 ,如果没有设置的话,默认就是个点
                    (marke的参数在 https://blog.csdn.net/wei18791957243/article/details/83831266 里面有详细说明),

import matplotlib.pyplot as plt   # 导入绘图模块
import numpy as np               #  导入需要生成数据的numpy模块

x = np.random.randn(100)
y = np.random.randn(100)
'''设置每一个点的颜色随机生成'''
color = np.random.random(300).reshape((100,3))  # 一千行三列
'''设置每一个点的大小随机生成'''
size = np.random.randint(0,100,100)
plt.scatter(x,y,color = color,s=size,marker='*')
plt.show()

2. 图形内的文字、注释、箭头

  

     (1) 图形内的添加文本  plt.text()       plt.figtext()

'''
第一种方式 text()
 text(x,y,s,fontdict=None, withdash=False)
    参数说明:(1)x,y 坐标位置
             (2) 显示的文本
'''
x = np.arange(0,2*np.pi,0.01)
plt.plot(np.sin(x))
'''x,y 代表着坐标系中数值'''
plt.text(20,0,'sin(0) = 0')
'''
第二种方式  figtext()
    使用figtext时候,x,y代表相对值,图片的宽度
    
'''
x2 = np.arange(0,2*np.pi,0.01)
plt.plot(np.cos(x2))
''''''
plt.figtext(0.5,0.5,'cos(0)=0')
plt.show()

       

(2)  添加注释和箭头  plt.annotate()

'''
添加注释  annotate()
    参数 :(1)x  : 注释文本
          (2)xy: 
          (3) xytext:
          (4) 设置箭头,arrowprops 
                arrowprops : 是一个dict (字典)
           第一种方式:{'width':宽度,'headwidth':箭头宽,'headlength':箭头长,
                         'shrink':两端收缩总长度分数}   
                例如:arrowprops={'width':5,'headwidth':10,'headlength':10,'shrink':0.1}
           第二种方式:'arrowstyle':样式 
                例如:
              有关arrowstyle的样式:'-' 、'->'、'<-'、'-['、'|-|'、'-|>'、'<|-'、'<->'
                                   'fancy','simple','wedge'      
'''
x = np.random.randint(0,30,size=10)
x[5] = 30  # 把索引为5的位置改为30
plt.figure(figsize=(12,6))
plt.plot(x)
plt.ylim([-2,35]) # 设置y轴的刻度
plt.annotate(s='this point is important',xy=(5,30),xytext=(7,31),
             arrowprops={'arrowstyle':'->'})
plt.show()

     

猜你喜欢

转载自blog.csdn.net/wei18791957243/article/details/83893892