2012-04-12 6 views
9

İki veri kümesine sahip JFreeChart kullanarak XY çizgi grafiğini oluşturdum, her iki çizginin de farklı renklerde olmasını istiyorum. Aşağıdaki kullanarak çalıştı KodunuzuXYline grafiğinde farklı seriler için farklı renk JFreeChart

Ayrıca ben farklı oluşturucu kullanarak duyuyorum Aşağıdaki kodu kullanarak denedi (bunu yapmak için doğru yolu olup olmadığını bilmiyorum)
XYPlot plot = chart.getXYPlot(); 
    XYItemRenderer xyir = plot.getRenderer(); 
    xyir.setSeriesPaint(0, Color.GREEN); 
    plot.setDataset(0, xyDataset1); 

    xyir.setSeriesPaint(1, Color.blue); 
    plot.setDataset(1, xyDataset2); 

-

XYPlot plot1 = chart.getXYPlot(); 
    XYPlot plot2 = chart.getXYPlot(); 

    XYItemRenderer xyir1 = plot1.getRenderer(); 
    xyir1.setSeriesPaint(0, Color.GREEN); 
    plot1.setDataset(0, xyDataset1); 

    XYItemRenderer xyir2 = plot2.getRenderer(); 
    xyir2.setSeriesPaint(1, Color.blue); 
    plot2.setDataset(1, xyDataset2); 

yılında Her iki durumda da, her iki çizgi de mavi renkte yazdırılıyor. Sorun nedir? Baska öneri??

cevap

17

çözüm, daha önce ben Oluşturucu null için Series boya ayarlamak için

XYPlot plot = chart.getXYPlot(); 
    plot.setDataset(0, xyDataset1); 
    plot.setDataset(1, xyDataset2); 
    XYLineAndShapeRenderer renderer0 = new XYLineAndShapeRenderer(); 
    XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer(); 
    plot.setRenderer(0, renderer0); 
    plot.setRenderer(1, renderer1); 
    plot.getRendererForDataset(plot.getDataset(0)).setSeriesPaint(0, Color.red); 
    plot.getRendererForDataset(plot.getDataset(1)).setSeriesPaint(0, Color.blue); 
2

Gösterilen yaklaşım, bu example'da çalışır ve tek bir oluşturucu yeterli olmalıdır. Bir sscce, sorunu yalıtmaya yardımcı olabilir.

Tek tek öğeleri kontrol etmek için, , gösterilen here geçersiz kılabilirsiniz.

-1

deneyin properly-- yapmıyordu, iki farklı Renderer kullanarak, benim için çalışıyor Bulundu setSeriesPaint(null);

Kaynağa bir bakacak olursanız, önce boya !null olup olmadığını kontrol eder, ardından temel rengi kullanır.

null, bir arama tablosundaki zaman dizisiyle ilişkili renkleri kullanır.