【问题标题】:Create Fatter Candlesticks in JFreeChart在 JFreeChart 中创建更胖的烛台
【发布时间】:2015-09-19 13:40:23
【问题描述】:

我正在开发一个显示每日财务数据的应用程序,并选择使用 JFreeChart。我能够学习如何创建烛台图表,但我的问题在于自定义。

你看,我的目标更像是

虽然,到目前为止我所能管理的只是

.

无论我放大多远,烛台的宽度都不会增加。

我相当肯定,细烛台不知何故与被绑定到某个时间范围有关。我试图纠正这一点,但不确定我在这里做错了什么。

SSCE

    public void showStockHistory(OHLCDataset dataset, String stockName) {
    JFreeChart candleChart = ChartFactory.createCandlestickChart("History of " + stockName, "Date", "Stock Points", dataset, true);

    XYPlot plot = candleChart.getXYPlot();
        plot.setDomainPannable(true);
        plot.setRangePannable(true);

    ValueAxis domain = plot.getDomainAxis();
        domain.setAutoRange(true);

    NumberAxis range = (NumberAxis)plot.getRangeAxis();
        range.setUpperMargin(0.0D);
        range.setLowerMargin(0.0D);
        range.setAutoRange(true);
        range.setAutoRangeIncludesZero(false);

    ChartPanel chartPanel = new ChartPanel(candleChart);
        chartPanel.setMouseWheelEnabled(true);
        chartPanel.setMouseZoomable(true);

    getViewport().add(chartPanel);
    }

【问题讨论】:

  • 可能的duplicate 与使用SegmentedTimeline 相关。
  • @trashgod 我不太确定它是否与此有关。就我而言,无论拖动移动或缩放深度如何,图表都只显示细蜡烛。不知道在这里做什么..所以也许我会尝试使用时间轴来查看是否发生任何变化..
  • 拖动只是让它更容易看到,因为宽度起伏不定。你也可以试试setAutoWidthMethod()
  • @trashgod 谢谢。虽然它不完全是我所说的完美,但考虑到我正在使用的数据集的大小,将setAutoWidthMethod() 设置为CandlestickRenderer.WIDTHMETHOD_SMALLEST 或多或少都很好。
  • 听起来不是重复的;我会鼓励你answer your own question

标签: jfreechart candlestick-chart


【解决方案1】:

虽然我给定的示例似乎与上面第一张图片代码中的demo 没有不同的方法调用,但它只显示了细烛台。我认为这是某种错误。

但是,我能够纠正以下问题:

  1. 获取图表的渲染器,

  2. 将其转换为CandlestickRenderer 的类型,并且

  3. 将其setAutoWidthMethod() 方法设置为CandlestickRenderer.WIDTHMETHOD_SMALLEST

这就是你的做法:

JFreeChart candleChart = ChartFactory.createCandlestickChart(
    "History of " + stockName, "Date", "Stock Points", dataset, true);
XYPlot plot = candleChart.getXYPlot();
CandlestickRenderer renderer = (CandlestickRenderer) plot.getRenderer();
renderer.setAutoWidthMethod(CandlestickRenderer.WIDTHMETHOD_SMALLEST);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2021-02-28
    • 2020-06-15
    相关资源
    最近更新 更多