In[]:=
physicalEstart=AbsoluteTime[];collection="Physical";vsScheme="VisibleSpectrum";vsParameters=ColorData[vsScheme,"ParameterCount"];vsParameterRange=ColorData[vsScheme,"Range"];color380=ColorConvert[ColorData[vsScheme][380],"HSB"];n=380;While[(List@@ColorConvert[ColorData[vsScheme][n],"HSB"])[[1]]0.,n++];after380n=n;after380color=ColorConvert[ColorData[vsScheme][n],"HSB"];While[(List@@ColorConvert[ColorData[vsScheme][n],"HSB"])[[1]]≤(List@@ColorConvert[ColorData[vsScheme][n+1],"HSB"])[[1]],n++];maxHueN=n;maxHueColor=ColorConvert[ColorData[vsScheme][n],"HSB"];n=440+100;While[(List@@ColorConvert[ColorData[vsScheme][n-1],"HSB"])[[1]]1/3.,n--];firstGn=n;firstGcolor=ColorConvert[ColorData[vsScheme][n],"HSB"];n=440+100;While[(List@@ColorConvert[ColorData[vsScheme][n+1],"HSB"])[[1]]1/3.,n++];lastGn=n;lastGcolor=ColorConvert[ColorData[vsScheme][n],"HSB"];n=750;While[(List@@ColorConvert[ColorData[vsScheme][n-1],"HSB"])[[1]]0.,n--];before750n=n;before750color=ColorConvert[ColorData[vsScheme][n],"HSB"];color750=ColorConvert[ColorData[vsScheme][750],"HSB"];Print[];Print["\t",Column[{Style["ColorData[\"VisibleSpectrum\",\"Image\"]","Input"],ColorData[vsScheme,"Image"]},Center,1]]Print[];Print["\t",vsScheme,". parameters = ",vsParameters,", parameter range = ",vsParameterRange];Print["\t",vsScheme," color[380] = ",color380," ",InputForm[color380]];Print["\t",vsScheme," color[",after380n,"] = ",after380color," ",InputForm[ncolor]];Print["\t",vsScheme," color[",maxHueN,"] = ",maxHueColor," ",InputForm[maxHueColor]];Print["\t",vsScheme," color[",firstGn,"] = ",firstGcolor," ",InputForm[firstGcolor]];Print["\t",vsScheme," color[",lastGn,"] = ",lastGcolor," ",InputForm[lastGcolor]];Print["\t",vsScheme," color[",before750n,"] = ",before750color," ",InputForm[before750color]];Print["\t",vsScheme," color[750] = ",color750," ",InputForm[color750]];Print[];calloutList={380,440,520,550,610,750};vsNH=Which[MemberQ[calloutList,#[[1,1]]],Callout[#,Style[#[[1,1]],{Black,12}],If[((#[[1,1]]380)||(#[[1,1]]610)||(#[[1,1]]750)),Above,Automatic]],True,#]&/@(Style[{#,(List@@ColorConvert[ColorData[vsScheme][#],"HSB"])[[1]]},{ColorData[vsScheme][#],PointSize[Medium]}]&/@Range[vsParameterRange[[1]],vsParameterRange[[2]]]);vsLP=ListPlot[vsNH,AxesStyleTable[{Black,12},2],AxesLabel(Style[#,{Black,12}]&/@{"nm","Hue"}),PlotLabelColumn[{Style["Tristimulus Hue vs Electromagnetic Spectrum",{Black,13}],Row[{Style["from ",{Black,12}],Style["ColorData[\""<>vsScheme<>"\"]",{"Input",Black,12}]}," "],""},Center,0.5],ImageSize{512,Automatic}];Print[vsLP];Print[];physicalEfinish=AbsoluteTime[];physicalEelapsed=Quantity[physicalEfinish-physicalEstart,"Seconds"];Print["Elapsed time = ",ToString[physicalEelapsed]];