You must be logged in to post your query.
Home › Forums › Chart Support › Wind direction degrees to description
Tagged: wind direction
I have a chart of a wind sensor that displays values from 0 to 359 degrees. On my y-axis are the values 0, 100, 200, 300 and 400 degrees. I want the data to be displayed in degrees but replace the y-axsis with
N for 0 NE for 45 E for 90 SE for 135 S for 180 SW for 225 W for 270 NW for 315
How can I accomplish this?
Already found the solution in ‘labelFormatter’. For others who are looking for such a solution I briefly describe my solution.
Because I made it possible to dynamically add different data (sensor from a weather station) to the chart by clicking a weather icon, I use the setter of the corresponding axis after adding data to chart. See code below.
chart.axisY2[0].set('labelFormatter',function ( e ) { if ( e.value >= 11.25 && e.value < 33.75 ) return 'NNE'; else if ( e.value >= 33.75 && e.value < 56.25 ) return 'NE'; else if (e.value >= 56.25 && e.value < 78.75 ) return 'ENE'; else if (e.value >= 78.75 && e.value < 101.25 ) return 'E'; else if (e.value >= 101.25 && e.value < 123.75 ) return 'ESE'; else if (e.value >= 123.75 && e.value < 146.25 ) return 'SE'; else if (e.value >= 146.25 && e.value < 168.75 ) return 'SSE'; else if (e.value >= 168.75 && e.value < 191.25 ) return 'S'; else if (e.value >= 191.25 && e.value < 213.75 ) return 'SSW'; else if (e.value >= 213.75 && e.value < 236.25 ) return 'SW'; else if (e.value >= 236.25 && e.value < 258.75 ) return 'WSW'; else if (e.value >= 258.75 && e.value < 281.25 ) return 'W'; else if (e.value >= 281.25 && e.value < 303.75 ) return 'WNW'; else if (e.value >= 303.75 && e.value < 326.25 ) return 'NW'; else if (e.value >= 326.25 && e.value < 348.75 ) return 'NNW'; else if (e.value >= 348.75 ) return 'N'; else if (e.value < 11.25 ) return 'N'; return e.value; });
@lve,
Glad you’ve figured it out :)
You can further simplify the solution by using interval and labelFormatter as shown in this JSFiddle.
— Shashi Ranjan Team CanvasJS
Great! I used interval and maximum, but your code is simpler.
You must be logged in to reply to this topic. Login/Register