当前位置: 首页 > 知识库问答 >
问题:

jFreechart将plot映射到下一个plot值

李昌勋
2023-03-14
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 = new XYSeries("data");
        data.add(3, 2); //Point 1
        data.add(1, 1); //Point 2
        data.add(4, 1); //Point 3
        data.add(2, 2); //Point 4
        dataset.addSeries(data);
        showGraph();
    }

    private void showGraph() {
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        final ApplicationFrame frame = new ApplicationFrame("Title");
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }

    private JFreeChart createChart(final XYDataset dataset) {
        final JFreeChart chart = ChartFactory.createScatterPlot(
            "Title",                  // chart title
            "X",                      // x axis label
            "Y",                      // y axis label
            dataset,                  // data
            PlotOrientation.VERTICAL,
            true,                     // include legend
            true,                     // tooltips
            false                     // urls
        );
        XYPlot plot = (XYPlot) chart.getPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesLinesVisible(0, true);
        plot.setRenderer(renderer);
        return chart;
    }

}

共有1个答案

逄念
2023-03-14

@trashgod:感谢您对自动排序功能的见解。

正如他所建议的那样,我开始知道我们可以在Xysersies中禁用自动排序。像

final XYSeries data = new XYSeries("data",false);

因为我提到它是'false',所以线是按照我在数据集中添加绘图的顺序绘制的。

 类似资料:
  • 当我计算抛物线的新系数时,抛物线的图没有更新。当老鼠是一条抛物线和移动时,计算出新的系数。将显示图形上的新系数,但绘图保持不变。为什么这样?

  • plot 可用于数据绘制与可视化,它提供了用于在 Go 中构建和绘制图的 API。 gonum/plot  被分成几个开发包: plot 包提供简单的界面布局的接口,并绘制它提供了原函数。 绘图仪包提供了一组标准的绘图仪,它使用由 plot 提供的原函数绘制线,散点图,箱线图,误差线等。 你不需要通过使用绘图仪包来利用 gonum/plot,自定义绘图仪的教程,可在维基中查看。 plotutil

  • 绘制曲线图、饼状图。可以在图形上标注数据。 [Code4App.com]

  • pandoc-plot A Pandoc filter to generate figures from code blocks in documents pandoc-plot turns code blocks present in your documents (Markdown, LaTeX, etc.) into embedded figures, using your plotting

  • Function Plot 是一个基于 D3.js 开发的 2D 图表库,用来绘制各种函数图。 示例代码: functionPlot({  title: 'y = x * x',  target: '#linear-with-options',  width: 580,  height: 400,  disableZoom: true,  xLabel: 'x - axis',  yLabel: 

  • PowerPlot是一个iOS可视化类库,可以用于科学和商业领域的可视化图表绘制。可以绘制柱状图、折线图等等,是一个可以高度定制化的类库,满足开发者大部分可视化绘制需求。 [Code4App.com]