user1065490
user1065490

Reputation: 305

Jfree Using custom names to categories

I'm very new to Jfreechart, Please help me to get the solution for this, I'm using jfree to draw a graph for a categories which has specific code names like 563,258.855,etc... So i want to assign these values as labels to the domain axis, but by default it is assigning value1,value2,value3,etc... to categories. It is looking like this now

But I wan to make it something like below enter image description here

and here is my code,

final CategoryDataset dataset1 = DatasetUtilities.createCategoryDataset("Month to Date Occurences","value", data);  


JFreeChart dualchart = ChartFactory.createBarChart(
    "Top Ten Diagnostic Occurences",         // chart title
    "Category",                 // domain axis label
    "Score",                // range axis label
    dataset1,                    // data
    PlotOrientation.HORIZONTAL, // orientation
    true,                       // include legend
    true,
    false
);



CategoryPlot plot = dualchart.getCategoryPlot();
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
plot.setBackgroundPaint(Color.WHITE);
plot.setRangeGridlinePaint(Color.black); 


BarRenderer renderer= (BarRenderer) plot.getRenderer();
renderer.setItemMargin(0.0);


CategoryAxis domainAxis = plot.getDomainAxis ();
domainAxis.setCategoryMargin(0.30); //distance between series
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setRange(0.0, 100.0);
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

return dualchart;

Your suggestions are most welcome, Thanks in advance.

Upvotes: 1

Views: 667

Answers (1)

GrahamA
GrahamA

Reputation: 5923

You haven't included the code for dataset1 so it's hard to tell what the problem is but if you use something like this:

private static CategoryDataset createDataset() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(15, "1", "451");
    dataset.addValue(12, "1", "851");
    dataset.addValue(10, "2", "362");
    dataset.addValue(5,  "2",  "142");   
    return dataset;
}

You will get a chart like this:

enter image description here

Upvotes: 1

Related Questions