我們可以使用 pyplot 中的 scatter() 方法來(lái)繪制散點(diǎn)圖。
scatter() 方法語(yǔ)法格式如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
參數(shù)說明:
x,y:長(zhǎng)度相同的數(shù)組,也就是我們即將繪制散點(diǎn)圖的數(shù)據(jù)點(diǎn),輸入數(shù)據(jù)。
s:點(diǎn)的大小,默認(rèn) 20,也可以是個(gè)數(shù)組,數(shù)組每個(gè)參數(shù)為對(duì)應(yīng)點(diǎn)的大小。
c:點(diǎn)的顏色,默認(rèn)藍(lán)色 'b',也可以是個(gè) RGB 或 RGBA 二維行數(shù)組。
marker:點(diǎn)的樣式,默認(rèn)小圓圈 'o'。
cmap:Colormap,默認(rèn) None,標(biāo)量或者是一個(gè) colormap 的名字,只有 c 是一個(gè)浮點(diǎn)數(shù)數(shù)組的時(shí)才使用。如果沒有申明就是 image.cmap。
norm:Normalize,默認(rèn) None,數(shù)據(jù)亮度在 0-1 之間,只有 c 是一個(gè)浮點(diǎn)數(shù)的數(shù)組的時(shí)才使用。
vmin,vmax::亮度設(shè)置,在 norm 參數(shù)存在時(shí)會(huì)忽略。
alpha::透明度設(shè)置,0-1 之間,默認(rèn) None,即不透明。
linewidths::標(biāo)記點(diǎn)的長(zhǎng)度。
edgecolors::顏色或顏色序列,默認(rèn)為 'face',可選值有 'face', 'none', None。
plotnonfinite::布爾值,設(shè)置是否使用非限定的 c ( inf, -inf 或 nan) 繪制點(diǎn)。
**kwargs::其他參數(shù)。
以下實(shí)例 scatter() 函數(shù)接收長(zhǎng)度相同的數(shù)組參數(shù),一個(gè)用于 x 軸的值,另一個(gè)用于 y 軸上的值:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
plt.scatter(x, y)
plt.show()
顯示結(jié)果如下:
設(shè)置圖標(biāo)大小:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
sizes = np.array([20,50,100,200,500,1000,60,90])
plt.scatter(x, y, s=sizes)
plt.show()
顯示結(jié)果如下:
自定義點(diǎn)的顏色:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])
plt.scatter(x, y, c=colors)
plt.show()
顯示結(jié)果如下:
設(shè)置兩組散點(diǎn)圖:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999')
plt.show()
顯示結(jié)果如下:
使用隨機(jī)數(shù)來(lái)設(shè)置散點(diǎn)圖:
import numpy as np
import matplotlib.pyplot as plt
# 隨機(jī)數(shù)生成器的種子
np.random.seed(19680801)
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2 # 0 to 15 point radii
plt.scatter(x, y, s=area, c=colors, alpha=0.5) # 設(shè)置顏色及透明度
plt.title("W3Cschool Scatter Test") # 設(shè)置標(biāo)題
plt.show()
顯示結(jié)果如下:
Matplotlib 模塊提供了很多可用的顏色條。
顏色條就像一個(gè)顏色列表,其中每種顏色都有一個(gè)范圍從 0 到 100 的值。
下面是一個(gè)顏色條的例子:
設(shè)置顏色條需要使用? cmap
?參數(shù),默認(rèn)值為 ?'viridis'
?,之后顏色值設(shè)置為 0 到 100 的數(shù)組。
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.show()
顯示結(jié)果如下:
如果要顯示顏色條,需要使用? plt.colorbar()
?方法:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.colorbar()
plt.show()
顯示結(jié)果如下:
換個(gè)顏色條參數(shù), cmap 設(shè)置為 ?afmhot_r
?:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='afmhot_r')
plt.colorbar()
plt.show()
顯示結(jié)果如下:
顏色條參數(shù)值可以是以下值:
顏色名稱 | 保留關(guān)鍵字 | |
---|---|---|
Accent | Accent_r | |
Blues | Blues_r | |
BrBG | BrBG_r | |
BuGn | BuGn_r | |
BuPu | BuPu_r | |
CMRmap | CMRmap_r | |
Dark2 | Dark2_r | |
GnBu | GnBu_r | |
Greens | Greens_r | |
Greys | Greys_r | |
OrRd | OrRd_r | |
Oranges | Oranges_r | |
PRGn | PRGn_r | |
Paired | Paired_r | |
Pastel1 | Pastel1_r | |
Pastel2 | Pastel2_r | |
PiYG | PiYG_r | |
PuBu | PuBu_r | |
PuBuGn | PuBuGn_r | |
PuOr | PuOr_r | |
PuRd | PuRd_r | |
Purples | Purples_r | |
RdBu | RdBu_r | |
RdGy | RdGy_r | |
RdPu | RdPu_r | |
RdYlBu | RdYlBu_r | |
RdYlGn | RdYlGn_r | |
Reds | Reds_r | |
Set1 | Set1_r | |
Set2 | Set2_r | |
Set3 | Set3_r | |
Spectral | Spectral_r | |
Wistia | Wistia_r | |
YlGn | YlGn_r | |
YlGnBu | YlGnBu_r | |
YlOrBr | YlOrBr_r | |
YlOrRd | YlOrRd_r | |
afmhot | afmhot_r | |
autumn | autumn_r | |
binary | binary_r | |
bone | bone_r | |
brg | brg_r | |
bwr | bwr_r | |
cividis | cividis_r | |
cool | cool_r | |
coolwarm | coolwarm_r | |
copper | copper_r | |
cubehelix | cubehelix_r | |
flag | flag_r | |
gist_earth | gist_earth_r | |
gist_gray | gist_gray_r | |
gist_heat | gist_heat_r | |
gist_ncar | gist_ncar_r | |
gist_rainbow | gist_rainbow_r | |
gist_stern | gist_stern_r | |
gist_yarg | gist_yarg_r | |
gnuplot | gnuplot_r | |
gnuplot2 | gnuplot2_r | |
gray | gray_r | |
hot | hot_r | |
hsv | hsv_r | |
inferno | inferno_r | |
jet | jet_r | |
magma | magma_r | |
nipy_spectral | nipy_spectral_r | |
ocean | ocean_r | |
pink | pink_r | |
plasma | plasma_r | |
prism | prism_r | |
rainbow | rainbow_r | |
seismic | seismic_r | |
spring | spring_r | |
summer | summer_r | |
tab10 | tab10_r | |
tab20 | tab20_r | |
tab20b | tab20b_r | |
tab20c | tab20c_r | |
terrain | terrain_r | |
twilight | twilight_r | |
twilight_shifted | twilight_shifted_r | |
viridis | viridis_r | |
winter | winter_r |
更多建議: