将值添加到 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
。
有一个具有以下值的 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
。