2012-11-19 28 views
2

在這裏,在對英格蘭和蘇格蘭之間的拔河戰的當前狀態代碼:如何設置背景的各個部位的顏色疊置條形圖

public TugOfWar(String s) { 
    super(s); 

    // data set 
    DefaultKeyedValues2DDataset dataset = new DefaultKeyedValues2DDataset(); 
    dataset.addValue(0.2, "England", ""); 
    dataset.addValue(0.8, "Scotland", ""); 

    JFreeChart chart = ChartFactory.createStackedBarChart("tug-of-war", 
     "", "", dataset, PlotOrientation.HORIZONTAL, true, false, false); 
    CategoryPlot plot = chart.getCategoryPlot(); 

    // customize axis 
    SymbolAxis axis = new SymbolAxis("", new String[]{ 
      "England", "draw", "Scotland"}); 
    axis.setRange(0, 2d); 
    plot.setRangeAxis(axis); 

    // customize renderer 
    BarRenderer renderer = new StackedBarRenderer(); 
    renderer.setBase(0.8); 
    renderer.setMinimumBarLength(0); 
    renderer.setMaximumBarWidth(0.5); 
    renderer.setItemMargin(0.0); 
    renderer.setDrawBarOutline(true); 
    renderer.setShadowVisible(true); 
    renderer.setBarPainter(new StandardBarPainter()); 
    plot.setRenderer(renderer); 

    // customize background 
    plot.setBackgroundPaint(Color.WHITE); 
    plot.setDomainGridlinePaint(Color.lightGray); 
    plot.setRangeGridlinePaint(Color.lightGray); 
    plot.setDomainCrosshairVisible(true); 
    plot.setRangeCrosshairVisible(true); 

    ChartPanel chartpanel = new ChartPanel(chart); 
    chartpanel.setPreferredSize(new Dimension(600, 270)); 
    setContentPane(chartpanel); 
} 

public static void main(String args[]) { 
    TugOfWar tugOfWar = new TugOfWar("Tug of war"); 
    tugOfWar.pack(); 
    RefineryUtilities.centerFrameOnScreen(tugOfWar); 
    tugOfWar.setVisible(true); 
} 

這使我們這樣的:

enter image description here

正如你所看到的,情節背景的中心已被設置爲白色(正確的),但左,右頁邊距仍然淺灰色。如何設置背景外部的顏色?

+0

愚蠢的問題......如果你'chart.setBackgroundPaint(Color.WHITE)會發生什麼;',而不是'plot.' – durron597

+0

@ durron597'chart.setBackgroundPaint'控制的顏色背景*圍繞圖表,同時'plot.setBackgroundPaint'控制圖表中背景*的顏色。所有的背景?不,並非全部......就像它似乎;) – steffen

+0

'setInsets'呢?編輯:我想通過看javadoc來幫助你,我不能輕易測試任何東西 – durron597

回答

3

交替背景是SymbolAxis的功能,您可以禁用該功能。

axis.setGridBandsVisible(false); 

enter image description here

+0

就是這樣。非常感謝你 ! – steffen