matplotlib 知识点13:绘制散点图(scatter函数精讲)
散點(diǎn)圖是指在回歸分析中,數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的分布圖,散點(diǎn)圖表示因變量隨自變量而變化的大致趨勢(shì),據(jù)此可以選擇合適的函數(shù)對(duì)數(shù)據(jù)點(diǎn)進(jìn)行擬合。
用兩組數(shù)據(jù)構(gòu)成多個(gè)坐標(biāo)點(diǎn),考察坐標(biāo)點(diǎn)的分布,判斷兩變量之間是否存在某種關(guān)聯(lián)或總結(jié)坐標(biāo)點(diǎn)的分布模式。散點(diǎn)圖將序列顯示為一組點(diǎn)。值由點(diǎn)在圖表中的位置表示。類(lèi)別由圖表中的不同標(biāo)記表示。散點(diǎn)圖通常用于比較跨類(lèi)別的聚合數(shù)據(jù)。
散點(diǎn)圖通常用于顯示和比較數(shù)值,例如科學(xué)數(shù)據(jù)、統(tǒng)計(jì)數(shù)據(jù)和工程數(shù)據(jù)。
初認(rèn)識(shí):使用numpy包的random函數(shù)隨機(jī)生成100組數(shù)據(jù),然后通過(guò)scatter函數(shù)繪制散點(diǎn)圖。
#!/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'] #用來(lái)正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus']=False #用來(lái)正常顯示負(fù)號(hào)
N = 100
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x,y)
plt.title("散點(diǎn)圖示例01") #顯示圖表名稱(chēng)
plt.xlabel("x軸") #x軸名稱(chēng)
plt.ylabel("y軸") #y軸名稱(chēng)
plt.text(+1.2,-3,"By:biyoulin",fontsize=16,color="purple")
plt.show()
scatter函數(shù)格式:
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函數(shù)參數(shù)詳解,英文原版請(qǐng)參見(jiàn):matplotlib官網(wǎng)scatter函數(shù):
x,y:形如shape(n,)的數(shù)組,可選值, s: 點(diǎn)的大小(也就是面積)默認(rèn)20 c: 點(diǎn)的顏色或顏色序列,默認(rèn)藍(lán)色。其它如c = 'r' (red); c = 'g' (green); c = 'k' (black) ; c = 'y'(yellow) marker:標(biāo)記樣式,可選值,默認(rèn)是圓點(diǎn);
cmap: colormap,用于表示從第一個(gè)點(diǎn)開(kāi)始到最后一個(gè)點(diǎn)之間顏色漸進(jìn)變化;
norm: normalize,
vmin:
vmax:
alpha: 設(shè)置標(biāo)記的顏色透明度,可以理解為顏色屬性之一
linewidths: 設(shè)置標(biāo)記邊框的寬度值
verts:
edgecolors: 設(shè)置標(biāo)記邊框的顏色
hold:
data:
**kwargs:
scatter()函數(shù)各參數(shù)示例:
1、x,y:橫縱坐標(biāo),數(shù)據(jù)坐標(biāo)(data position)
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5) plt.show()
2、marker :圖標(biāo),默認(rèn)的是“.”,也可以是其它形狀,想了解更多的,請(qǐng)參見(jiàn):matplotlib 學(xué)習(xí)筆記02:marker標(biāo)記詳解。下面例子將marker設(shè)置成了“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()
上面的文字是不是看不到?因?yàn)樽煮w太小了,通過(guò)參數(shù)s(size)可以調(diào)整“點(diǎn)”的大小。
3、s: size,字體大小,默認(rèn)值為20;
import matplotlib.pyplot as plt plt.scatter(x=0.5,y=0.5,s=10000,marker='$biyoulin$') plt.show()
到目前為止幾個(gè)例子中的“點(diǎn)”都是藍(lán)色的,可以通過(guò)調(diào)整c(color)參數(shù)來(lái)設(shè)置顏色:
4、c: color,色彩會(huì)顏色序列,默認(rèn)是'b'(藍(lán)色),可支持的顏色參數(shù)如下:
| b | c | g | k | m | r | w | y |
| blue | cyan | green | black | magenta | red | white | yellow |
| 藍(lán)色 | 青色 | 綠色 | 黑色 | 洋紅 | 紅色 | 白色 | 黃色 |
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,顧名思義“邊”的顏色,設(shè)置標(biāo)記邊框的顏色,下面的例子中,將邊的顏色設(shè)置了為藍(lán)色:
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()
可能有人會(huì)問(wèn),看不出來(lái)“邊”的顏色是藍(lán)色。沒(méi)關(guān)系,通過(guò)設(shè)置linewidths,就容易看出來(lái)了。
7、linewidths:the edge size of the marker,設(shè)置標(biāo)記邊框的寬度;
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”,這個(gè)參數(shù)用于多個(gè)點(diǎn)之間,只有一個(gè)點(diǎn)就無(wú)意義了。注意到“gradient”即量級(jí)、程度,用于表示從第一個(gè)點(diǎn)開(kāi)始到最后一個(gè)點(diǎn)之間顏色漸進(jìn)變化。
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,不再是顏色的名稱(chēng),這里是一個(gè)序列,并且值等于“點(diǎn)”數(shù)量值(如果不匹配,則會(huì)出錯(cuò))。只有c是一個(gè)array或一個(gè)sequence,用cmap才有意義。
參考博文:https://www.cnblogs.com/sunshinewang/p/6853813.html
https://blog.csdn.net/zidephagino/article/details/80777906
作者:biyoulin
出處:http://www.cnblogs.com/biyoulin/
版權(quán)聲明:本文版權(quán)歸作者所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
總結(jié)
以上是生活随笔為你收集整理的matplotlib 知识点13:绘制散点图(scatter函数精讲)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 槟榔十三味丸_功效作用注意事项用药禁忌用
- 下一篇: Oracle-Hints详解