<div>Hi All,</div><div><br></div><div> I have uploaded the implementation of the paper , "An Extension of Wilkinson’s Algorithm for Positioning Tick Labels on Axes" (<a href="http://vis.stanford.edu/files/2010-TickLabels-InfoVis.pdf">http://vis.stanford.edu/files/2010-TickLabels-InfoVis.pdf</a>) to gerrit for review (<a href="http://review.source.kitware.com/#change,2473">http://review.source.kitware.com/#change,2473</a>) The paper implements the automated system for choosing positions and labels for axis tick marks.The methods contained in the paper are mainly contained in a class named vtkAxisExtended. I made also some changes to the vtkAxis class to incorporate some additional functions described in the paper. </div>
<div><br></div><div>This is an optimization based algorithm. If the algorithm fails to come up with a good labeling scheme, as a last resort, it tries changing the font size, format and orientation of the labels. There are eight different axis label formats in this implementation.</div>
<div><br></div><div> 1 - Scientific 5 * 10^6</div><div> 2- Decimal e.g. 5000</div><div> 3 - Thousands K e.g. 5K</div><div> 4 - Factored K e.g. 5(K)</div><div> 5 - Millions M e.g. 5M</div><div> 6 - Factored M e.g. 5(M)</div>
<div> 7 - Factored Decimals e.g. 5 (thousands)</div><div> 8 - Factored Scientific 5 (10^6)</div><div><br></div><div><br></div><div>Currently, in the vtkAxis class there are only 2 different formats (scientific and fixed i.e. 1 and 2 in the above list). When automatically selecting one of the above formats, there is the question how do you set the precision, since there are divisions involved. I followed this scheme:</div>
<div>** When the scientific labeling is used the precision given by the user is used to set the number of decimal points. (2 is the default)</div><div>** In all other schemes, if the division doesn't result in any decimal points that number is used, if not the precision is set according to the user given value.</div>
<div><br></div><div>For e.g., if the optimization based algorithm selects the 3rd label format scheme, it will result</div><div><br></div><div> 30K for the input 30,000</div><div> 34.56K for the input 34 567</div>
<div> 34.567K for the input 34.567 if the user changed the precision property to 3.</div><div><br></div><div><br></div><div>In this algorithm, user can specify a desired font size. So if the LabelProperties->FontSize is set by the user, that value is given a higher weight (default is 12). That way user has a control on the font size of the labels.</div>
<div><br></div><div>Charts/Testing/Cxx/TestLinePlot2.cxx has a test for this implementation, that replicates the figure 1 given in the paper. </div><div><br></div><div>I would like to get your ideas/comments on how to improve and review the code.</div>
<div><br></div><div>Thank you,</div><div><br></div><div>Regards,</div><div><br></div><div>Tharindu</div>