标签: jfreechart

寻找一个可以在散点图上绘制~200,000个点的javascript图表库

我正在构建一个Web应用程序,其界面包含一个大的散点图,以便向用户提供其数据的概述.散点图大约有200,000个点.目前我正在使用JFreeChart Java库服务器端,它可以很好地绘制绘图 - 只需要大约一秒钟来渲染它.

为了使我的应用程序更具交互性,我想切换到使用Javascript绘制图表客户端.这将允许我包括点,工具提示,可点击点等的交互式过滤.我已经尝试使用Google Charts,但这需要一个时间来渲染并使浏览器停滞不前.

有没有人知道可以处理这么大的数据集的Javascript图表库?或者我应该放弃这个想法并坚持使用JFreeChart?我不介意页面本身是否需要一段时间来加载(这是不可避免的,因为要传输大量数据)但我需要图表在合理的时间内更新以响应用户输入.

javascript charts jfreechart

13
推荐指数
2
解决办法
1万
查看次数

在散点图中更改点的形状

我在JFreeChart散点图上绘制了数千个点.现在的问题是我的程序正在用"正方形"绘制点,但我需要一些帮助来解决如何将Shape点从"正方形"更改为"点/圆"的问题.任何帮助,将不胜感激.

// *我正在使用ShapeUtilities,但是当我使用XYItemRenderer/XYDotRenderer时,它没有改变指向"DaigonalCross"的形状 - 如果代码中有任何错误,请更正.* ///

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Shape;
import java.util.*;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYDotRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.util.ShapeUtilities;

public class SPlotfinal extends ApplicationFrame {

    public SPlotfinal(String s) {
        super(s);
        JPanel jpanel = createDemoPanel();
        jpanel.setPreferredSize(new Dimension(500, 270));
        setContentPane(jpanel);
    }

    public static JPanel createDemoPanel() {

        JFreeChart jfreechart = ChartFactory.createScatterPlot("Scatter Plot Demo",
            "X", "Y", samplexydataset2(), PlotOrientation.VERTICAL, true, …
Run Code Online (Sandbox Code Playgroud)

java jfreechart

12
推荐指数
2
解决办法
3万
查看次数

在缩放的散点图中获取区域或元素

我有以下问题.我想放大Scatterplot然后选择所有显示的元素.

以某种方式获取放大的Scatterplot中的显示区域就足够了.从该区域的范围,我可以确定哪些元素在区域中显示,哪些不是.

\ edit:找到解决方案(实现AxisChangeListener接口)

import java.awt.Color;
import java.awt.Dimension;

import org.jfree.chart.ChartPanel;
import org.jfree.chart.event.AxisChangeEvent;
import org.jfree.chart.event.AxisChangeListener;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.ChartFactory;  
import org.jfree.chart.JFreeChart; 


public class ScatterExample extends ApplicationFrame implements AxisChangeListener {
/**
 * Creates a new demo instance.
 * @param title the frame title. 
 */

private XYSeriesCollection dataset;
private JFreeChart chart;


public ScatterExample(String title) { 
    super(title);

    dataset = createSampleXYDataset();

    chart = ChartFactory.createScatterPlot(
            "Scatterplot Demo", // chart title
            "X", // domain axis label
            "Y", …
Run Code Online (Sandbox Code Playgroud)

zoom jfreechart elements selection area

12
推荐指数
1
解决办法
1493
查看次数

将JFreeChart添加到JPanel中

如果我有我的Jpanel和我的JFreeChart.如何将此图表添加到JPanel中?

XYSeries series = new XYSeries("XYGraph");
   series.add(1, 1);
   series.add(1, 2);
   series.add(2, 1);
   series.add(3, 9);
   series.add(4, 10);

// Add the series to your data set
   XYSeriesCollection dataset = new XYSeriesCollection();
   dataset.addSeries(series);

// Generate the graph
   JFreeChart chart = ChartFactory.createXYLineChart(
   "XY Chart", // Title
   "x-axis", // x-axis Label
   "y-axis", // y-axis Label
   dataset, // Dataset
   PlotOrientation.VERTICAL, // Plot Orientation
   true, // Show Legend
   true, // Use tooltips
   false // Configure chart to generate URLs?
);
Run Code Online (Sandbox Code Playgroud)

而现在,我如何在我的JPanle中添加图表?

java user-interface swing jfreechart jpanel

12
推荐指数
1
解决办法
3万
查看次数

JFReeChart x轴刻度

我有一个JFree XY线图,总是从x = 0开始.然后根据属性文件中的用户定义设置,应用程序根据该数字递增(这表示以分钟为单位的时间)

例如,x = 0以启动用户定义的设置为5 - 因此比例变为0,5,10,15,20 ......或者用户设置为3,因此它变为0,3,6,9,12. .....

很简单.

我遇到的问题是图表的开始方式.如果我从0开始,那么0位于图形的中间而不是左下角的-0.0000005,-0.000004,-0.000003 ..... 0.000000,0.000001,0.000002 ...... 0.000005

我怎样才能在底部手动添加比例,即定义它应该是2的增量然后它维持它?

谢谢你的时间

java graph jfreechart

12
推荐指数
2
解决办法
2万
查看次数

更改jfreechart的域轴标签和范围轴标签的字体大小

我的目标是增加"收入($)"和"年"的规模.但是我不知道怎么做.我能够增加"苹果,榴莲,橘子"和"2012年,2013年".

以下是我的代码.

图片

    JFreeChart chart = ChartFactory.createBarChart3D("", // chart title
                "Years", // domain axis label
                "Revenue ($)", // range axis label
                dataset, // data
                PlotOrientation.VERTICAL, // orientation
                false, // include legend
                false, // tooltips
                false);

CategoryPlot plot = chart.getCategoryPlot();
        CategoryAxis axis = plot.getDomainAxis();

        CategoryPlot p = chart.getCategoryPlot(); 
         ValueAxis axis2 = p.getRangeAxis();

        Font font = new Font("Dialog", Font.PLAIN, 25);
        axis.setTickLabelFont(font);
        Font font2 = new Font("Dialog", Font.PLAIN, 15);
        axis2.setTickLabelFont(font2);

        LegendTitle legend = new LegendTitle(plot.getRenderer());

        Font font3 = new Font("Dialog", Font.PLAIN, 20); …
Run Code Online (Sandbox Code Playgroud)

java jfreechart font-size axis-labels

12
推荐指数
1
解决办法
2万
查看次数

JFreeChart Scatter Plot Lines

我正在尝试使用JFreeChart创建一个图形,但是它没有正确的线条.它不是按我按顺序连接点,而是按照x值的顺序连接点.我正在使用ChartFactory.createScatterPlot来创建绘图,使用XYLineAndShapeRenderer来设置可见的线条.

/编辑: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 = 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 …
Run Code Online (Sandbox Code Playgroud)

java lines jfreechart scatter-plot

11
推荐指数
1
解决办法
1万
查看次数

具有时间轴的JavaFX实时LineChart

我正在尝试使用时间轴绘制实时图形,但我发现LineChart构造函数只有签名.

LineChart(Axis<X> xAxis, Axis<Y> yAxis)  
Run Code Online (Sandbox Code Playgroud)

我认为在javafx中嵌入jfree图表不是一个合适的解决方案.

我想在javafx中使用一些jfree功能LineChart,这可能吗?

java charts jfreechart javafx-2

11
推荐指数
1
解决办法
2万
查看次数

jfreechart自定义饼图以显示绝对值和百分比

这个可编辑的最小代码片段示例如何使用JFreeChart作为绘图API,以便显示 absoulte值和百分比?我无法从互联网上的任何代码段或JFreechart手册本身中提取此信息.代码段生成一个仅显示百分比的饼图.在我的情况下绝对值也很重要,所以我需要在百分比下显示它们.

这是代码:( 注意它没有导入)

public class MyMinimalPieChartExample {
    public static void main(String[] args) {
    DefaultPieDataset dataset = new DefaultPieDataset();
    dataset.setValue("some data 1",99);
    dataset.setValue("some data 2", 77);

    //third adaption
    JFreeChart someChart = ChartFactory.createPieChart(
            "some chart header", dataset,
            true, true, false);
    PiePlot illegalLegalRestPiePlot4 = (PiePlot) someChart.getPlot();
    illegalLegalRestPiePlot4.setSectionPaint("some data 1", new Color(0, 255, 0));
    illegalLegalRestPiePlot4.setSectionPaint("some data 2",
            new Color(255, 0, 0));
    PiePlot plot4 = (PiePlot) someChart.getPlot();
    plot4.setExplodePercent("some data 1", 0.4);
    plot4.setSimpleLabels(true);

    PieSectionLabelGenerator generator = new StandardPieSectionLabelGenerator(
            "{0} = {2}", new DecimalFormat("0"), new …
Run Code Online (Sandbox Code Playgroud)

java jfreechart percentage absolute-value pie-chart

11
推荐指数
1
解决办法
1万
查看次数

从Eclipse运行时不出现Java JFrame窗口

一个非常简单的问题.我尝试运行一个非常简单的演示来创建和显示Eclipse的Window Frame,但没有任何反应.没有错误,没有窗口,代码运行完成.

我添加了断点并确保代码按预期运行.代码直接来自Java教程(FrameDemo),我只是将包重命名为适合放置它的位置(此包中的其他代码运行正常):

package ui;

import java.awt.*;
import javax.swing.*;

/* FrameDemo.java requires no other files. */
public class FrameDemo {
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("FrameDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel emptyLabel = new JLabel("");
        emptyLabel.setPreferredSize(new Dimension(175, 100));
        frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java eclipse macos swing jfreechart

11
推荐指数
1
解决办法
6426
查看次数