Tag: jfreechart

使用Yahoo Finance Quotes时,jfreechart崩溃了

问题解决:解决方案正在改为JFreeChart v1.0.15 我有一个非常特殊的问题。 我设置的是一个文件,它向Yahoo Finance网站发送url请求,然后使用结果在JFrame中绘制JFreeChart。 我无法理解的是以下内容: 对于某些url请求,JFrame崩溃了 它开始,但只显示一个白色的屏幕。 鉴于其他请求,我的程序运行正常。 例 例如: 这个请求: “http://ichart.yahoo.com/table.csv?s=GOOG&a=0&b=1&c=2011&d=6&e=24&f=2013&g=d&ignore=.csv”; 工作良好。 但是这个要求: “http://ichart.yahoo.com/table.csv?s=GOOG&a=2&b=1&c=2012&d=6&e=24&f=2013&g=d&ignore=.csv”; 导致错误。 这怎么可能? 注意 我知道以下内容: JFrame崩溃但JVM没有记录它(没有注意到它崩溃) 下载股票报价(JFreeChart使用的信息)在两种情况下都是完美的 下载数据并在JFreeChart中显示的代码来自该网站 ( RoyW发布的代码»2008年5月10日星期六上午7:52 )。 进入的数据量似乎不是问题,因为在请求1中,数据点多于请求2中的数据点 我下载数据的方式并不重要(我尝试直接从url读取,我尝试将.csv文件保存到文件夹,然后从文件夹中读取) 问题不是随机发生的:我尝试多次启动JFrame(重新编译代码然后运行它),但“错误”引用每次都会崩溃JFrame。 额外的信息 可能与它有关的东西: 当我使用正确的引号启动图形并且我拖动图形时,会发生奇怪的事情。 在某个时间间隔,似乎每个周末,烛台变得越来越小,直到它们只是条纹。 然后,当我拖过周末时,它们会变得更厚,直到它们再次恢复正常。 这似乎发生在每个周末。 请参考以下图片: 所以它让我觉得它可能与交易日有关 。 但这也没有任何意义,因为2011年 1月1日(请求1)落在星期六和2012年 3月1日(请求2)落在星期四,而请求1成功,请求2失败。 对于我应该做什么,我完全不知道。 所有帮助非常感谢。 更新 根据要求,这里是带有trashgod建议的SSCCE(使用JFreechart lib v1.0.14)。 import org.jfree.chart.*; import org.jfree.chart.axis.*; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.CandlestickRenderer; […]

如何在JFreeChart图表上画线?

我有可更新的OHLCChart。 我需要在图表上划一条线。 怎么实现呢?

自定义图形 – Java Swing

我正在尝试用Java创建自定义动态直方图类型条形图。 我搜索了很多但是找不到实现这个目标的方法。 我知道JFreeChart库,但它不符合我的需求。 这就是JFreeChart直方图的样子: 但我想要的是一个只有X轴的动态直方图。 这个photoshopped图像将使它更容易理解。 JFrame将具有固定的边界。 如您所见,应该没有Y轴。 条形图的高度应根据值自动调​​整。 请帮我建立这个! 提前致谢。

在servlet中动态生成JFreeChart

我正在尝试使用JFreeChart动态生成图形,因为用户选择了一些复选框,但我无法弄清楚如何最好地将生成的数据集转换为图表forms(我的代码可以从这些图表中生成图表,但需要生成pngs)并进入JSP视图。 目前,我只能考虑将数据集发送到JSP,但不能想到从那里做什么…我如何做到这一点:用户将表单提交给servlet,servlet生成数据集,从数据集生成的图表,pngs从图表和最后的pngs派遣到jsp? 或类似的规定。 public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ String[] metrics = request.getParameterValues(“metrics”); String[] fileNames = request.getParameterValues(“files”); List results = new ArrayList(); DMCalc calculator = new DMCalc(metrics, fileNames); calculator.calculateResults(); results.add(calculator.getEditDistanceDataset()); results.add(calculator.getSimilarityDataset()); results.add(calculator.getTimeChartDataset()); request.setAttribute(“results”, results); RequestDispatcher view = request.getRequestDispatcher(“metricResult.jsp”); view.forward(request, response); } 更新: 通过让doPost方法从用户post生成数据集,然后可以将它们存储在字段中,随后RequestDispatcher将用户转发到JSP,然后在img标记中调用servlet的doGet方法,该标记使用之前存储的数据集。用于生成png的字段,然后由JSP中的HTML显示。

JFreeChart在不同区域的不同颜色为同一dataSeries

在JFreeChart我试图根据y值为XY线图/曲线的不同区域着色。 我正在覆盖XYLineAndShapeRenderer的getItemPaint(int row, int col) ,但是我不确定它如何处理x s之间的线的着色,因为itemPaint在x上获得itemPaint (整数值)。 final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer() { @Override @Override public Paint getItemPaint(int row, int col) { System.out.println(col+”,”+dataset.getY(row, col)); double y=dataset.getYValue(row, col); if(y<=3)return ColorUtil.hex2Rgb("#7DD2F7"); if(y<=4)return ColorUtil.hex2Rgb("#9BCB3B"); if(y<=5)return ColorUtil.hex2Rgb("#FFF100"); if(y<=6)return ColorUtil.hex2Rgb("#FAA419"); if(y<=10)return ColorUtil.hex2Rgb("#ED1B24"); //getPlot().getDataset(col). return super.getItemPaint(row,col); } }

Jfreechart – 根据更改的数据刷新图表

如果我们想要改变“实时”某些数据,我想知道如何刷新图表。 我的意思是,例如,我有一个带有TaskSeries的图表,该图表出现3年,我想将3年改为5年。 我希望图表立即改变。 是否有某种更新图表或类似的东西? 我知道您可以说“获取您的TaskSeries,进行更改并自动刷新”,但我的TaskSeries已生成,我无法轻易更改这些。 这就是为什么我想找到一种重新计算和重建整个图表的方法。 我希望我足够清楚,解释起来并不容易。 谢谢你的帮助, 约翰

JFreeChart Scatter Plot Lines

我正在尝试使用JFreeChart创建一个图形,但是它没有正确的线条。 它不是按我按顺序连接点,而是按照x值的顺序连接点。 我正在使用ChartFactory.createScatterPlot来创建绘图,使用XYLineAndShapeRenderer来设置可见的线条。 / edit:sscce: package test; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.ui.ApplicationFrame; public class PlotTest { private XYSeriesCollection dataset; public static void main (String[] args) { new PlotTest(); } public PlotTest () { dataset = new XYSeriesCollection(); XYSeries data = […]

将BufferedImage添加到PDFBox文档

在我当前的项目中,我尝试将一个BufferedImage添加到PDFBox文档中。 更具体地说,我使用了JFreeChart的图像。 我的代码如下所示: public void exportToPDF(JFreeChart chart, String filePath){ PDDocument doc = null; PDPage page = null; PDXObjectImage ximage = null; try { doc = new PDDocument(); page = new PDPage(); doc.addPage(page); PDPageContentStream content = new PDPageContentStream(doc, page); BufferedImage image = chart.createBufferedImage(300, 300); ximage = new PDJpeg(doc, image); content.drawImage(ximage, 20, 20); content.close(); } catch(IOException ie) […]

关闭JFreeChart条形图中的空白区域

我正在使用JFreeChart并希望显示玩家得分的条形图,其中y轴上的得分和x轴上的玩家游戏。 例如 String[] {Player name, score, game number} Player 1, 10 , 1 Player 1, 12 , 2 Player 1, 15 , 3 Player 2, 11 , 1 Player 3, 18 , 1 因为玩家不必玩相同数量的游戏,所以当创建数据集时,这会导致大量空白,因为它试图为玩家2和3游戏2和3绘制条形图。 data.addValue(score, game number, player name); 输出:(数字不匹配,这只是我敲了一个快速测试) 任何人都可以帮我解决这个空白区域的问题吗? 从理论上讲,玩家1可以继续玩2个玩家,玩家2和玩家只玩3个,所以看起来很荒谬! 我是JFreeChart的新手,所以可能有一个明显的解决方案! 预先感谢您的帮助。

尝试使用JSP / Servles使用JFreeChart; JDBCCategoryDataset和CategoryDataset的问题

我正在尝试连接到数据库并在servlet中执行查询。 我正在按照这个例子JFreeChart示例 。 如果查看readData()方法,它会在最初为JDBCCategoryDataset时返回CategoryDataset 。 我得到一个错误,直到我把它做了一个CategoryDataset 。 当我运行代码时,它不起作用,告诉我它无法投射。 任何帮助将非常感激!