散點圖是指在回歸分析中,數據點在直角坐標系平面上的分布圖,散點圖表示因變量隨自變量而變化的大致趨勢,據此可以選擇合適的函數對數據點進行擬合。
用兩組數據構成多個坐標點,考察坐標點的分布,判斷兩變量之間是否存在某種關聯或總結坐標點的分布模式。散點圖將序列顯示為一組點。值由點在圖表中的位置表示。類別由圖表中的不同標記表示。散點圖通常用於比較跨類別的聚合數據。
散點圖通常用於顯示和比較數值,例如科學數據、統計數據和工程數據。
初認識:使用numpy包的random
函數隨機生成100組數據,然后通過scatter函數繪制散點圖。
#!/usr/bin/env python #!-*-coding:utf-8 -*- #!@Author : Biyoulin #!@Time : 2018/9/2 14:40 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽 plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號 N = 100 x = np.random.randn(N) y = np.random.randn(N) plt.scatter(x,y) plt.title("散點圖示例01") #顯示圖表名稱 plt.xlabel("x軸") #x軸名稱 plt.ylabel("y軸") #y軸名稱 plt.text(+1.2,-3,"By:biyoulin",fontsize=16,color="purple") plt.show()
scatter函數格式:
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, hold=None, data=None, **kwargs):
scatter函數參數詳解,英文原版請參見:matplotlib官網scatter函數:
x,y:形如shape(n,)的數組,可選值, s: 點的大小(也就是面積)默認20 c: 點的顏色或顏色序列,默認藍色。其它如c = 'r' (red); c = 'g' (green); c = 'k' (black) ; c = 'y'(yellow) marker:標記樣式,可選值,默認是圓點;
cmap: colormap,用於表示從第一個點開始到最后一個點之間顏色漸進變化;
norm: normalize,
vmin:
vmax:
alpha: 設置標記的顏色透明度,可以理解為顏色屬性之一
linewidths: 設置標記邊框的寬度值
verts:
edgecolors: 設置標記邊框的顏色
hold:
data:
**kwargs:
scatter()函數各參數示例:
1、x,y:橫縱坐標,數據坐標(data position)
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5) plt.show()
2、marker : 圖標,默認的是“.”,也可以是其它形狀,想了解更多的,請參見:matplotlib 學習筆記02:marker標記詳解。下面例子將marker設置成了“d”(diamond形狀):
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,marker='d') plt.show()
也可以是文字:
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,marker='$biyoulin$') plt.show()
上面的文字是不是看不到?因為字體太小了,通過參數s(size)可以調整“點”的大小。
3、s : size,字體大小,默認值為20;
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,s=10000,marker='$biyoulin$') plt.show()
到目前為止幾個例子中的“點”都是藍色的,可以通過調整c(color)參數來設置顏色:
4、c : color,色彩會顏色序列,默認是'b'(藍色),可支持的顏色參數如下:
b | c | g | k | m | r | w | y |
blue | cyan | green | black | magenta | red | white | yellow |
藍色 | 青色 | 綠色 | 黑色 | 洋紅 | 紅色 | 白色 | 黃色 |
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,s=10000,c='r',marker='$biyoulin$') plt.show()
5、alpha:可以理解為顏色的屬性之一 ,即透明度,alpha的范圍為[0,1],從透明到不透明,上面的例子中 alpha為1,可以看看0.5的效果:
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,s=10000,c='r',alpha=0.5,marker='$biyoulin$') plt.show()
6、edgecolors:the edge color of marker,顧名思義“邊”的顏色,設置標記邊框的顏色,下面的例子中,將邊的顏色設置了為藍色:
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,s=10000,c='r',alpha=1,marker='d',edgecolors='b') plt.show()
可能有人會問,看不出來“邊”的顏色是藍色。沒關系,通過設置linewidths,就容易看出來了。
7、linewidths:the edge size of the marker,設置標記邊框的寬度;
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,s=10000,c='r',alpha=1,marker='d',linewidths=10 ,edgecolors='b') plt.show()
8、cmap:A colormap is a series of colors in a gradient that moves from a starting to ending color。注意到是“a series of”,這個參數用於多個點之間,只有一個點就無意義了。注意到“gradient”即量級、程度,用於表示從第一個點開始到最后一個點之間顏色漸進變化。
import matplotlib.pyplot as plt x1=list(range(0,60)) y1=list(range(0,60)) plt.scatter(x=x1,y=y1,marker='d',s=10,c=y1,cmap=plt.cm.Reds) plt.show()
注意到c=y1,不再是顏色的名稱,這里是一個序列,並且值等於“點”數量值(如果不匹配,則會出錯)。只有c是一個array或一個sequence,用cmap才有意義。
參考博文:https://www.cnblogs.com/sunshinewang/p/6853813.html
https://blog.csdn.net/zidephagino/article/details/80777906
作者:biyoulin
出處:http://www.cnblogs.com/biyoulin/
版權聲明:本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。