我使用JFreeChart绘制了一个标准的正态分布:
NormalDistributionFunction2D normalDistributionFunction2D = new NormalDistributionFunction2D(0.5, 0.15);
XYDataset dataset = DatasetUtilities.sampleFunction2D(normalDistributionFunction2D, 0.0, 1.0, 1000, "Normal");
JFreeChart chart = ChartFactory.createXYLineChart("MyTitle --, "", "", xySeriesCollection, PlotOrientation.VERTICAL, false, false, false);
除此之外,我想在给定点放置一个圆圈。我在计算圆的[x,y]坐标时没有问题,但我不确定如何将它添加到图表中。任何帮助赞赏。我想要实现的MS Paint爆破在下面。
答案 0 :(得分:6)
您绝对不需要覆盖绘制方法或在顶部添加图层。 JFreeChart已经支持这种行为。
正确的方法是在图表中添加注释,具体来说:
chart.getPlot().addAnnotation(new XYShapeAnnotation(new Ellipse2D.Double(x - radius, y - radius, radius + radius, radius + radius))
其中x和y是圆的中心。请注意,坐标位于绘图空间中,而不是图形空间。 JFreeChart将在渲染时自动转换它们。
看看: http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/annotations/XYShapeAnnotation.htm http://www.java2s.com/Code/Java/Chart/JFreeChartPlotOrientationDemo2.htm
答案 1 :(得分:1)
如果你有点的坐标,你可以:
paintComponent
上绘制圆圈(有点困难,因为您必须补偿图表边框答案 2 :(得分:0)
一种方法是在一个系列中添加一个带有x和y坐标的点(0,0)。现在,设置<Directory/>
AllowOverride all
</Directory>
RewriteEngine On
RewriteRule ^signin$ signin.php
现在您可以更新系列并使点可移动。