我是JFreeChart的新手,我正在尝试看看什么动作可以做什么。
在我的图表中,我只有一个系列,并且我希望-根据值设置-为柱形设置其他颜色。例如 : 0-20 -> RED, 20-80 -> YELLOW, 80-100 -> GREEN
0-20 -> RED, 20-80 -> YELLOW, 80-100 -> GREEN
CategoryPlot plot = chart.getCategoryPlot(); CategoryDataset dataset = plot.getDataset(0); Number value = dataset.getValue(dataset.getRowKey(0), dataset.getColumnKey(0)); Double val = value.doubleValue(); if (val <= 20.0) { BarRenderer renderer = (BarRenderer) plot.getRenderer(); Paint tmp = renderer.getItemPaint(row, column); /* ** Help Please */ } return chart;
这是我到达的地方,我被困在这里,真的不知道要去哪里。我在文档中看到Paint是一个接口,但是没有实现此接口的类都没有提供setXXX()方法。所以,我的两个问题是:
您需要创建自己的BarRenderer和的子类getItemPaint()。无需根据列选择颜色,而是根据您的值选择颜色。这是显示现有BarRenderer工作原理的轮廓。
BarRenderer
getItemPaint()
plot.setRenderer(new MyRender()); ... class MyRender extends BarRenderer { @Override public Paint getItemPaint(int row, int col) { System.out.println(row + " " + col + " " + super.getItemPaint(row, col)); return super.getItemPaint(row, col); } }