1

我对 Jfreechart 很陌生,请帮我找到解决方案,我正在使用 jfree 为具有特定代码名称(如 563,258.855 等)的类别绘制图表...所以我想将这些值分配为标签到域轴,但默认情况下它将 value1、value2、value3 等分配给类别。现在看起来像这样

但我想让它像下面这样 在此处输入图像描述

这是我的代码,

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;

非常欢迎您的建议,在此先感谢。

4

1 回答 1

1

您还没有包含代码,dataset1因此很难说出问题所在,但如果您使用这样的东西:

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;
}

你会得到一个这样的图表:

在此处输入图像描述

于 2012-06-12T11:17:55.683 回答