您現在的位置是:首頁 > 垂釣

| Python筆記|plt.scatter散點圖自定義cmap和設定不等間距色標

  • 由 暖眼旁觀者 發表于 垂釣
  • 2022-04-27
簡介scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, vert

色標怎麼做

Python中繪製散點圖常用的函式是 matplotlib。pyplot。scatter,它的主要引數如下:

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, *, plotnonfinite=False, data=None, **kwargs)

其中cmap設定顏色對映,可以是系統中的顏色對映,但多是漸變色,若是不需要漸變色也可以自定義顏色對映,自定義colormap可以參照這個連結:

http://bbs。06climate。com/forum。php?mod=viewthread&tid=42226&page=1

其中norm、vmin和vmax是設定色標刻度,若是均勻色標,只需要將色標最小值賦予vmin,最大值賦予vmax,結合顏色對映即會自動生成均勻色標。

但是如果需要不均勻色標,此時則需要設定norm,如下面的示例:

| Python筆記|plt.scatter散點圖自定義cmap和設定不等間距色標

若圖片不清晰,具體程式碼見文末,其中col是import matplotlib。colors as col

透過定義一個bounds列表,來實現色標的不均勻設定。

效果如下:

| Python筆記|plt.scatter散點圖自定義cmap和設定不等間距色標

衛星資料散點圖

色標還可以設定為冪次方形和指數形:

| Python筆記|plt.scatter散點圖自定義cmap和設定不等間距色標

冪次方形

| Python筆記|plt.scatter散點圖自定義cmap和設定不等間距色標

指數形

具體的設定可以見網站:https://matplotlib。org/3。1。1/tutorials/colors/colormapnorms。html。

最後附示例中設定程式碼,共同學習,共同提高:

bounds = [0。01,0。03,0。05,0。07,0。09,0。11,0。20,0。25,0。50,0。80,1。1,1。40,1。70,2。0]

norm = col。BoundaryNorm(boundaries=bounds, ncolors=14)

cs = mapobj。scatter(lon,lat,latlon=True,s=0。5,c=data,marker = ‘o’,cmap=cmap,norm=norm,alpha=0。8)

position=fig。add_axes([0。24, 0。08, 0。52, 0。02])#位置[left, bottom, width, height]

cb=fig。colorbar(cs,cax=position,orientation=‘horizontal’,extend=‘both’)#方向

cb。set_ticks(bounds)

cb。set_ticklabels(bounds)

Top