2011-12-06 18 views
6

Bir Zaman Dizisi Çizelgesi oluşturmak için JFreeChart kullanıyorum ama Y Ekseni olarak Tamsayı değerleri geçerken bunları şamandıra olarak gösterir!
sorun nedir? Böyle
Ben oluşturma ediyorum grafik:JFreeChart Y ekseni içinde tamsayı değerleri görüntüler

this.TodaySeriesGoldPrice = new TimeSeries("Price",Minute.class); 
if(TDD!=null){ 
    for(Map<String, Object> D: TDD){ 
     Calendar C=Calendar.getInstance(); 
     C.setTime(new Date((Long)D.get("timestamp"))); 
     this.TodaySeriesGoldPrice.add(new Minute(C.get(Calendar.MINUTE),C.get(Calendar.HOUR),C.get(Calendar.DAY_OF_MONTH),C.get(Calendar.MONTH),C.get(Calendar.YEAR)),(Integer)(((Map<String,Object>)D.get("tala")).get("Coin"))); 
    } 
} 

TimeSeriesCollection TodayDataset = new TimeSeriesCollection(); 
TodayDataset.addSeries(this.TodaySeriesGoldPrice); 
TodayDataset.setDomainIsPointsInTime(true); 
JFreeChart chart = ChartFactory.createTimeSeriesChart(
    "", // title 
    "Time",// x-axis label 
    "Price",// y-axis label 
    TodayDataset,// data 
    true, // create legend? 
    true, // generate tooltips? 
    false // generate URLs? 
); 
chart.setBackgroundPaint(Color.white); 
XYPlot plot = (XYPlot) chart.getPlot(); 
plot.setBackgroundPaint(Color.lightGray); 
plot.setDomainGridlinePaint(Color.white); 
plot.setRangeGridlinePaint(Color.white); 
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0)); 
plot.setDomainCrosshairVisible(true); 
plot.setRangeCrosshairVisible(true); 
plot.getDomainAxis().setLabelFont(new Font("Tahoma",Font.PLAIN,13)); 
plot.getRangeAxis().setLabelFont(new Font("Tahoma",Font.PLAIN,13)); 
XYItemRenderer r = plot.getRenderer(); 
DateAxis axis = (DateAxis) plot.getDomainAxis(); 
axis.setDateFormatOverride(new SimpleDateFormat("H:mm")); 
ChartPanel DCP=new ChartPanel(chart); 
dispPanel.setLayout(new BorderLayout()); 
dispPanel.add(DCP,BorderLayout.CENTER); 

Sonuç: tamsayı kene birimleri zorlayabilir
Result

cevap

9

olarak: Eğer kontrol edebilirsiniz mümkün olabilir Ancak

priceAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); 

Tamsayı örneğini döndürmek için Dataset() öğenizin getY() öğesini geçersiz kılarak tickunits.

İlgili konular