java - Gridlines above chart in JFreeChart -
is possible retrieve rangeaxis-values barchart? have manage draw new gridlines(markers) this:

but need know values pressent chart in value-axis able draw lines. ideas how value on "value"-axis?(rangeaxis)
public class barchartdemo extends applicationframe { /** * creates new demo instance. * * @param title frame title. */ public barchartdemo(final string title) { super(title); final categorydataset dataset = createdataset(); final jfreechart chart = createchart(dataset); final chartpanel chartpanel = new chartpanel(chart); chartpanel.setpreferredsize(new dimension(500, 270)); setcontentpane(chartpanel); } /** * returns sample dataset. * * @return dataset. */ private categorydataset createdataset() { // row keys... final string series1 = "first"; // column keys... final string category1 = "category 1"; final string category2 = "category 2"; final string category3 = "category 3"; // create dataset... final defaultcategorydataset dataset = new defaultcategorydataset(); dataset.addvalue(3.5, series1, category1); dataset.addvalue(4.0, series1, category2); dataset.addvalue(3.0, series1, category3); return dataset; } /** * creates sample chart. * * @param dataset dataset. * * @return chart. */ private jfreechart createchart(final categorydataset dataset) { // create chart... final jfreechart chart = chartfactory.createbarchart( "bar chart demo", // chart title "category", // domain axis label "value", // range axis label dataset, // data plotorientation.vertical, // orientation false, // include legend false, // tooltips? false // urls? ); categoryplot plot = chart.getcategoryplot(); plot.getdomainaxis().setcategorymargin(.01); plot.setrangegridlinesvisible(false); for(int i=1; i<=4; i++){ marker marker = new valuemarker(i); marker.setstroke(new basicstroke( 1.0f, basicstroke.cap_round, basicstroke.join_round, 1.0f, new float[] {3.0f, 8.0f}, 0.0f )); marker.setpaint(new color(224,224,224)); plot.addrangemarker(marker); } return chart; } public static void main(final string[] args) { final barchartdemo demo = new barchartdemo("bar chart demo"); demo.pack(); demo.setvisible(true); } }
it looks able leverage addrangemarker() in way similar domain example. 1 way match markers , tick units specify tickunitsource includes chosen markers:
numberaxis range = (numberaxis) plot.getrangeaxis(); range.setstandardtickunits(numberaxis.createintegertickunits()); if need custom source, can model on createintegertickunits() or createstandardtickunits().
Comments
Post a Comment