在我的简单应用程序中,我经常在给定的范围内选择一个随机数(0.~500000)。我需要一种在浏览器中可视化发行版的简单方法。所以输出选项是png,html/js,svg,ascii?
数据存储在一个简单的地图(番石榴的AtomicLongMap)索引->count中。我不需要任何选择。我只想看看分配的粗糙性质。一个专门用于可视化发行版的工具,可以直接与地图(或地图序列化到json)一起使用,这将是最好的选择。在json中,数据应该如下所示
{
"0":6
"1":3
"2":4
"3":0
"4":2
}(范围为0.4)
我首先看了jfreechart和google图表,因为我必须把我的地图转换成一种特殊的数据格式,我必须提供标签(我不需要任何标签)。几年前,我和Birt一起工作,但是对于我简单的需求来说,这也是非常复杂/过分的。
发布于 2015-12-08 09:47:00
一种简单的方法是创建一幅图像,并为每一列绘制一条与每个随机数的高度相同的线。一个简单的java代码应该如下所示。
final int AmountNumbers = 1000;
final int MaxSize = 500000;
// create Random Numbers
Random rnd = new Random();
ArrayList<Integer> randomNumbers = new ArrayList<>();
for(int i = 0; i < AmountNumbers; i++)
randomNumbers.add(rnd.nextInt(MaxSize));
// create picture
int width = AmountNumbers, height = 200;
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D ig2 = bi.createGraphics();
ig2.setPaint(Color.red);
// draw lines for every number
for(int i = 0; i < AmountNumbers; i++){
int rndNumber = randomNumbers.get(i);
ig2.drawLine( i, rndNumber * height / MaxSize, i, height);
}
// save as png
ImageIO.write(bi, "PNG", new File("chart.PNG"));https://stackoverflow.com/questions/34151955
复制相似问题