2011-12-06 14 views
6

私はJFreeChartを使用して時系列グラフを作成していますが、整数値をY軸として渡している間にfloatとして表示しています!!
問題は何ですか?
私はこのようなグラフを作成しています:JFreeChart Y軸の整数値を浮動小数点として表示

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); 

結果:あなたがコントロールすることができた可能性がありしかし

priceAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); 


Result

答えて

9

をあなたのように、整数ダニ・ユニットを強制することができますデータセット()のgetY()をオーバーライドしてIntegerのインスタンスを返すようにしてください。

関連する問題