Java 更改图表底部的系列颜色指示器
我正在使用jfreechart绘制一些图表,我希望图表栏是自定义颜色的,所以我遵循了和链接中提到的教程和示例代码 条形图颜色的问题已经解决,但现在我无法更改图表底部的系列颜色指示器,如下图所示。 有人能告诉我如何根据条形图改变颜色吗 编辑:Java 更改图表底部的系列颜色指示器,java,charts,jfreechart,Java,Charts,Jfreechart,我正在使用jfreechart绘制一些图表,我希望图表栏是自定义颜色的,所以我遵循了和链接中提到的教程和示例代码 条形图颜色的问题已经解决,但现在我无法更改图表底部的系列颜色指示器,如下图所示。 有人能告诉我如何根据条形图改变颜色吗 编辑: class CustomRenderer extends BarRenderer { public Paint[] colors; public CustomRenderer() { this.colors = new Paint[] { Col
class CustomRenderer extends BarRenderer
{
public Paint[] colors;
public CustomRenderer()
{
this.colors = new Paint[] { Color.green, Color.red };
/*
* { Color.red, Color.blue, Color.green, Color.yellow, Color.orange,
* Color.cyan, Color.magenta, Color.blue };
*/
}
public Paint getItemPaint(final int row, final int column)
{
// returns color for each column
return ((column % 2 == 0) ? colors[0] : colors[1]);
}
}
//Code for creating the chart in main() method
DefaultCategoryDataset objDataset = new DefaultCategoryDataset();
objDataset.setValue(10, "POS", "one");
objDataset.setValue(11, "NEG", "two");
objDataset.setValue(8, "POS", "three");
objDataset.setValue(12, "NEG", "four");
final JFreeChart objChart = ChartFactory.createBarChart(
"Top Ten Features", // Chart title
"Features", // Domain axis label
"POS and NEG value", // Range axis label
objDataset, // Chart Data
PlotOrientation.VERTICAL, // orientation
true, // include legend?
true, // include tooltips?
false // include URLs?
);
final CategoryPlot categoryPlot = objChart.getCategoryPlot();
CategoryItemRenderer renderere = new CustomRenderer();
categoryPlot.setRenderer(renderere);
final BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setItemMargin(-1);
final ChartFrame frame = new ChartFrame("Demo", objChart);
frame.pack();
frame.setVisible(true);
您的自定义
ballederer
覆盖getItemPaint()
,但它保持原始getLegendItem()
不变。这两种方法需要保持一致。您可以覆盖lookupSeriesPaint()
,或者更一般地说,提供一个替代的DrawingSupplier
,如所引用的文章所示。请编辑您的问题,包括一个显示您如何获得显示结果的问题。@trashgod代码添加。非常感谢您,DrawingSupplier解决了这个问题。