private JFreeChart createChart(XYDataset xydataset) {
   JFreeChart jfreechart =
       ChartFactory.createTimeSeriesChart(
           "Dynamic Data Demo", "Time", "Value", xydataset, true, true, false);
   XYPlot xyplot = (XYPlot) jfreechart.getPlot();
   ValueAxis valueaxis = xyplot.getDomainAxis();
   valueaxis.setAutoRange(true);
   valueaxis.setFixedAutoRange(60000D);
   valueaxis = xyplot.getRangeAxis();
   valueaxis.setRange(0.0D, 200D);
   return jfreechart;
 }
  /**
   * Create a GUI that shows a graph for the specified user's payoff history
   *
   * @param user The user to show the Payoff history for
   */
  public GraphGUI(User user) {
    super(
        user.getUserName()
            + "'s Payoff History (Over "
            + user.getPayoffHistory().size()
            + " Steps)");

    this.userInfo = user;
    this.pack();

    // Set size
    this.setMinimumSize(new Dimension(500, 500));

    // Center the graph
    this.setLocationRelativeTo(null);

    // Create a series collection
    xySeriesCollection = new XYSeriesCollection();

    // Create (refresh) chart data
    refreshChartData();

    // Create an XY Line Chart
    chart =
        ChartFactory.createXYLineChart(
            "User Payoff Over Time",
            "Steps (Simulation Iterations)",
            "User Payoff",
            xySeriesCollection);
    chart.getPlot().setBackgroundPaint(Color.WHITE);
    chart.getPlot().setOutlinePaint(Color.BLACK);

    // Draw the Initial Chart
    chart.draw(
        (Graphics2D) this.getGraphics(),
        (Rectangle2D) new Rectangle2D.Double(0, 0, this.getWidth(), this.getHeight()));

    // Set the content pane to a graphics panel for drawing the graph
    this.setContentPane(new GraphPanel(this));

    // Show the frame
    this.setVisible(true);

    // Subscribe to the user's UserPayoff events
    user.addPayoffListener(this);
  }
예제 #3
0
 /** Creates fundamental diagram chart. */
 private JFreeChart makeFDChart() {
   updateFDSeries();
   XYSeriesCollection dataset = new XYSeriesCollection();
   dataset.addSeries(ffFD);
   dataset.addSeries(cFD);
   dataset.addSeries(cdFD);
   JFreeChart chart =
       ChartFactory.createXYLineChart(
           null, // chart title
           "Density (vpm)", // x axis label
           "Flow (vph)", // y axis label
           dataset, // data
           PlotOrientation.VERTICAL,
           false, // include legend
           false, // tooltips
           false // urls
           );
   XYPlot plot = (XYPlot) chart.getPlot();
   plot.getRenderer().setSeriesPaint(0, Color.GREEN);
   plot.getRenderer().setSeriesPaint(1, Color.RED);
   plot.getRenderer().setSeriesPaint(2, Color.BLUE);
   plot.getRenderer().setStroke(new BasicStroke(2));
   return chart;
 }
예제 #4
0
  protected void buildChart() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    chart =
        ChartFactory.createMultiplePieChart(
            "Untitled Chart", dataset, org.jfree.util.TableOrder.BY_COLUMN, false, true, false);
    chart.setAntiAlias(true);
    // chartPanel = new ScrollableChartPanel(chart, true);
    chartPanel = buildChartPanel(chart);
    // chartHolder.getViewport().setView(chartPanel);
    setChartPanel(chartPanel);

    JFreeChart baseChart = (JFreeChart) ((MultiplePiePlot) (chart.getPlot())).getPieChart();
    PiePlot base = (PiePlot) (baseChart.getPlot());
    base.setIgnoreZeroValues(true);
    base.setLabelOutlinePaint(java.awt.Color.WHITE);
    base.setLabelShadowPaint(java.awt.Color.WHITE);
    base.setMaximumLabelWidth(
        0.25); // allow bigger labels by a bit (this will make the chart smaller)
    base.setInteriorGap(0.000); // allow stretch to compensate for the bigger label width
    base.setLabelBackgroundPaint(java.awt.Color.WHITE);
    base.setOutlinePaint(null);
    base.setBackgroundPaint(null);
    base.setShadowPaint(null);
    base.setSimpleLabels(false); // I think they're false anyway

    // change the look of the series title to be smaller
    StandardChartTheme theme = new StandardChartTheme("Hi");
    TextTitle title = new TextTitle("Whatever", theme.getLargeFont());
    title.setPaint(theme.getAxisLabelPaint());
    title.setPosition(RectangleEdge.BOTTOM);
    baseChart.setTitle(title);

    // this must come last because the chart must exist for us to set its dataset
    setSeriesDataset(dataset);
  }