1. 程式人生 > >matplotlib散點scatter學習1,引數測試(x,y\s\c)

matplotlib散點scatter學習1,引數測試(x,y\s\c)

學習最好的辦法直接看開發文件 開發文件連結 https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter matplotlib.pyplot.scatter #繪製散點圖的函式,x,y分別對應點的x軸座標和y軸座標 plt.scatter(x,y) 這是定義 matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)[source] 從x,y開始測試 x,y x, y : array_like, shape (n, ) The data positions. 碩寧 x,y兩個一維陣列 第一步 測試X,Y資料型別。在這裡,用subplots建立9個圖,程式碼為 a,b=plt.subplots(3,3) 呼叫b[0,0].scatter(x, y) 其它呼叫方法有 : plt.subplot(3,3,1) #引數3行3列 9個子圖第1個即(0,0)plt.subplot(338) #引數3行3列 9個子圖第8個即(3,2) 說明,x,y資料可以是list,tuple,dict不行

a,b=plt.subplots(3,3)
x,y=np.array([[1,2,3],[4,5,7]])
b[0,0].scatter(x, y)
b[0,0].scatter((7,8),[9,2])
plt.show()

在這裡插入圖片描述 引數s:s : scalar or array_like, shape (n, ), optional The marker size in points**2. Default is rcParams[‘lines.markersize’] ** 2. s :標量或類陣列,形狀( n,),可選點* * 2中的標記大小。預設為rcParams [ ’ lines . markersize ’ ] * * 2。測試s結構,亮程式碼吧

a,b=plt.subplots(3,3)
x,y=np.array([[1,2,3],[4,5,7]])
area=40 #固定值
b[0,1].scatter((7,8),[9,2],s=area)  #大小一樣,40(藍色的點)
area1=(10,75)
b[0,1].scatter((3,4),[9,2],s=area1)  #點(3,9)10,點(4,2)75  (橙色的點)
x=np.arange(6)
y=x*2
b[0,1].scatter(x,y,s=area1)  
#顯示6個點,大小(10,75,10,75,10,75)(綠色的點)
area2=range(7,100,3)
b[0,1].scatter(x/2,y*2,s=area2)  
#顯示6個點,大小(7,10,13,16,19,22) (紅色的點)
plt.show()

在這裡插入圖片描述 這說明,每個點point[i]的大小等於s[i]大小,如果i>len(s),s索引取i對len(s)求餘,我寫了一個演算法:可以測試一下:

def 測試變長輸入(a:list,b:list) -> dict:
    c={}
    for i,j in enumerate(a):
        c[j]=b[i % len(b)]
    return c
print(測試變長輸入([1,2],[3])) #out {1: 3, 2: 3} 說明 1,2作為Key,對應Value均為3
print(測試變長輸入([1,2],[3,4,5])) #out {1: 3, 2: 3} {1: 3, 2: 4} 說明 1,2作為Key,對應Value均為3在這裡插入程式碼片

接下來測試C c : color, sequence, or sequence of color, optional, default: ‘b’ The marker color. Possible values: A single color format string. A sequence of color specifications of length n. A sequence of n numbers to be mapped to colors using cmap and norm. A 2-D array in which the rows are RGB or RGBA. Note that c should not be a single numeric RGB or RGBA sequence because that is indistinguishable from an array of values to be colormapped. If you want to specify the same RGB or RGBA value for all points, use a 2-D array with a single row. Otherwise, value- matching will have precedence in case of a size matching with x and y. c :顏色、順序或顏色順序,可選,預設為:“b” 標記顏色。可能的值: 單色格式字串。 長度為n的顏色規格序列 要使用cmap和norm對映到顏色的n個數字的序列。 一種二維陣列,其中的行是RGB或RGBA。請注意,c不應是單個數字RGB或RGBA序列,因為這與要彩色對映的值陣列無法區分。如果要為所有點指定相同的RGB或RGBA值,請使用帶有單行的二維陣列。否則,如果大小與x和y匹配,則值匹配優先。 也就是c說支援字元和數字定義 c顏色[‘blue’, ‘green’, ‘red’, ‘cyan’, ‘magenta’, ‘yellow’, ‘black’, ‘white’] 對應[‘c’, ‘b’, ‘g’, ‘r’, ‘c’, ‘m’, ‘y’, ‘k’, ‘w’],實際上c和s的呼叫模式是一樣的

a,b=plt.subplots(3,3)
col=['c', 'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w']
colq=['c', 'b']
b[0,2].scatter(range(6),range(6),s=range(5,50,5),c=col)  
#顯示6個點,顏色'c', 'b', 'g', 'r', 'c', 'm'
b[0,2].scatter(range(0,10,2),range(6,16,2),s=range(5,50,5),c=colq)  
#顯示5個點,顏色'c', 'b','c', 'b','c'
plt.show()

在這裡插入圖片描述 這一篇先 寫到這,下一篇再研究其它引數