将值添加到 Scala 和 jfreechart 中的数据集

addValue to Dataset in Scala and jfreechart

有一个具有以下值的 ListMap:

scala> mx_sorted

res30: scala.collection.immutable.ListMap[Int,Int] = Map(0 -> 0, 5 -> 1, 10 -> 10, 15 -> 66, 20 -> 157, 25 -> 175, 30 -> 135, 35 -> 106, 40 -> 88, 45 -> 80, 50 -> 62, 55 -> 32, 60 -> 19, 65 -> 8, 70 -> 4, 75 -> 0, 80 -> 0)

scala> mx_sorted.foreach(println)

(0,0)
(5,1)
(10,10)
(15,66)
(20,157)
(25,175)
(30,135)
(35,106)
(40,88)
(45,80)
(50,62)
(55,32)
(60,19)
(65,8)
(70,4)
(75,0)
(80,0)

创建了一个 DefaultCategoryDataset

val ds = new org.jfree.data.category.DefaultCategoryDataset

当我尝试向该数据集添加值时出现错误。

scala> mx_sorted.foreach{case(k,v) => ds.addValue(v,"UserAges",k)}

<console>:41: error: overloaded method value addValue with alternatives:
  (x: Double,x: Comparable[_],x: Comparable[_])Unit <and>
  (x: Number,x: Comparable[_],x: Comparable[_])Unit
 cannot be applied to (Int, String, Int)
              mx_sorted.foreach{case(k,v) => ds.addValue(v,"UserAges",k)}

请帮助纠正此问题。

快速修复是 {case(k,v) => ds.addValue(v: Double, "UserAges", k: java.lang.Integer)}java.lang. 不是必需的,可能 : Double 也不是,我只是将它包括在内以使其更清楚)。问题是 Int 没有扩展 Comparable (因为它对应于原始 JVM int 类型),所以它需要装箱到 java.lang.Integer