hope everyone is doing well in these hard times. I am trying to plot the track of a cyclone with scatter points over a base map. I was successful in plotting it, but what I want is want the scatter plots to be plotted with different colors according to a certain range, such as less than 17 knots in color black, between 17-27 knts blue, between 27-33 cyan, between 33-47 green, between 47-63 orange and greater than 120 knots red. I was able to plot the scatter with various colors but not according to the range. So if anyone can help me by showing me how to do it it will be much appreciated. The code I have used and the plot generated is attached below.
import os
os.environ["PROJ_LIB"] = "C:\\Utilities\\Python\\Anaconda\\Library\\share"; #fixr
from mpl_toolkits.basemap import Basemap
import proplot as plot
import pandas as pd
import matplotlib as mpl
m=Basemap()
#dt = pd.read_excel('E:/tracks.xlsx',sheet_name='amp')
data = [25,25,35,40,45,55,70,80,100,120,125,130,125,115,105,100,95]
lon= [87,86.3,86.3,86.1,86,86,86,86.1,86.3,86.2,86.3,86.5,86.7,86.9,87,87.2,87.5]
lat= [10.4,10.9,10.9,11.1,11.4,11.5,12,12.5,13.2,13.4,14,14.9,15.6,16.5,17.4,18.4,19.1]
cmap = mpl.cm.get_cmap('bwr')
norm = mpl.colors.Normalize(vmin=25, vmax=130)
colors = cmap(norm(data))
x,y=m(lon,lat)
fig, axs = plot.subplots(ncols=1, axwidth=3, proj='merc', proj_kw={'lon_0': 180})
axs.format(
latlim=(0, 30), lonlim=(50, 100),linewidth=1,
gridlinewidth=0,coast=True, latlines=30, lonlines=60,)
l=axs.scatter(x,y,c=colors,s=10)
fig.colorbar(colors)

