Hi
Taimoor,
First I want to quickly try and explain the differences between the categorical and linear axes. The numerical axes have a notion of continuity and every value can be mapped to some position easily. Say that we have a linear axis with a range [0, 100], we can easily find where 67.8 would be positioned. We can even find the position of 200, even though it is not in the range. The numerical and datetime axes have this notion of ranges and a value can be located easily. The categorical axis, however, works in a completely different way. In general, the categories are thought to be distinct, unique, discrete entities. Categories can be Profit, Bolts, Will, 7.3, 2015/04/22, "gogo" and so on. The axis considers all categories equally important, so each category gets the same space allocated. Here, we cannot find the position of a category that is not in the categories set.
The problem in your case is that you have not found a way to sync the values and the categories. This is not possible in the general case. Because if you have a numerical range of [0, 10] you can easily position value 3.14, but you cannot easily create the categories of the categorical axis to ensure that there is a category at the same position. Surely, you can add 1000 categories and the 314th category will be positioned in the same spot. But hat if you wanted to show a category at position 2.78456? You can either insert a million categories or you can insert a hundred categories and work with approximations. I think that both cases are not a good option, but if you want, you can give them a try if you think they may get you the desired results.
I think the best way to go here is to use a scatter series and not mix a scatter with a categorical chart. We need to use some scatter series and give it a point template. The template needs to mimic a vertical thin bar. You can use a template like this one:
Now we have to clip the series so that the bottom of the bars appear to be at 0. We can find the position of 0 via the conversion api of the chart (ConvertDataToPoint methods of the chart). The little problem here is that you need to set the Clip of the series often - when the chart's size changes, when the series are rebound, when the axes change range, when you zoom in and so on. Anyway, I am sure that you will be able to solve this.
Let us know if you need further assistance.
Regards,
Petar Marchev
Telerik