1. 程式人生 > >Python視覺化中的Matplotlib(6.散點圖以及詳細引數、為圖形新增文字、註釋、箭頭以及它們的引數)

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()