2017-06-14 9 views
0

私はscalafxにbarchartをプロットする必要がある割り当てをしています。 以下のスニペットは、私が書いている現在のコードです。私は今6時間、エラーを考えています。Scala:このbarchartをうまくプロットするにはどうしたらいいですか?

var A : Int = 0 
var B : Int = 0 
var C : Int = 0 
var D : Int = 0 
var F : Int = 0 

val xAxis : CategoryAxis = new CategoryAxis() 
val yAxis : NumberAxis = new NumberAxis("Marks", 0.0d, 45.0d, 5.0d) 
val barChart : BarChart[String, Int] = new BarChart[String, Int](xAxis, yAxis) 

barChart.setTitle("Question Summary") 
xAxis.setLabel("Category") 
yAxis.setLabel("Number") 

for(index <- 0 to questionDetails.length - 1){ 
    if(questionDetails.apply(index).asInstanceOf[Double] < 40.0){ 
     F += 1 
    } 
    if(questionDetails.apply(index).asInstanceOf[Double] < 50.0 && 
     questionDetails.apply(index).asInstanceOf[Double] >= 40.0){ 
     D += 1 
    } 
    if(questionDetails.apply(index).asInstanceOf[Double] < 60.0 && 
     questionDetails.apply(index).asInstanceOf[Double] >= 50.0){ 
     C += 1 
    } 
    if(questionDetails.apply(index).asInstanceOf[Double] < 70.0 && 
     questionDetails.apply(index).asInstanceOf[Double] >= 60.0){ 
     B += 1 
    } 
    if(questionDetails.apply(index).asInstanceOf[Double] >= 70.0){ 
     A += 1 
    } 
} 

val series1 : XYChart.Series[String, Int] = new XYChart.Series() 
val series2 : XYChart.Series[String, Int] = new XYChart.Series() 
val series3 : XYChart.Series[String, Int] = new XYChart.Series() 
val series4 : XYChart.Series[String, Int] = new XYChart.Series() 
val series5 : XYChart.Series[String, Int] = new XYChart.Series() 

val data1 : XYChart.Data[String, Int] = XYChart.Data(A.toString, A) 
val data2 : XYChart.Data[String, Int] = XYChart.Data(B.toString, B) 
val data3 : XYChart.Data[String, Int] = XYChart.Data(C.toString, C) 
val data4 : XYChart.Data[String, Int] = XYChart.Data(D.toString, D) 
val data5 : XYChart.Data[String, Int] = XYChart.Data(F.toString, F) 

series1.getData().add(data1) 
series2.getData().add(data2) 
series3.getData().add(data3) 
series4.getData().add(data4) 
series5.getData().add(data5) 

barChart.prefWidth = 300.0 
barChart.getData().addAll(series1, series2, series3, series4, series5) 

questionAnalysisPane.left = barChart 

データを表示するグラフをプロットしようとするとこのエラーが発生します。

found : scalafx.scene.chart.NumberAxis 
[error] required: scalafx.scene.chart.Axis[Int] 
[error]  val barChart : BarChart[String, Int] = new BarChart[String, Int] 
(xAxis, yAxis) 

この状況では、どのように正しくbarchartをプロットできますか? 私はまだこの部分で少し混乱しています。 あなたの専門知識と指導は非常に貴重です。 は

答えて

0

エラーメッセージは、あなたがyAxisNumberそう

val barChart : BarChart[String, Number] = new BarChart[String, Number](xAxis, yAxis) 

が解決すべき

val barChart : BarChart[String, Int] = new BarChart[String, Int](xAxis, yAxis) 

にコード行を変更している barChart [String, Int]としてではなく定義されていることは明らかであるありがとうあなたが持っているエラー。

+0

Can not .. 私はseries1、series2、...のようにnumberに変更すると、seriesnはnumberにも変更されることになっています。一方、それはIntなので、もし数値に変更すれば、intを数値に変換したり、数値をintにスカラーで変換する方法はありますか? –

+0

questionDetailsで質問を更新して、私を含む他の人からのより迅速な解決策を得ることができますか? –

+0

私はできるだけ早くあなたに更新します。 まだ外に.. お待ちください、私を助けてください。 ハハハ。 ありがとうRamesh –

関連する問題