コード例 #1
0
ファイル: FrequencyPlot.java プロジェクト: 4ment/beast-mcmc
 protected void drawRect(Graphics2D g2, double x1, double y1, double x2, double y2) {
   if (traceDistribution != null
       && traceDistribution.getTraceType() != TraceFactory.TraceType.DOUBLE) {
     super.drawRect(g2, x1 - (x2 - x1), y1, x2, y2);
   } else {
     super.drawRect(g2, x1, y1, x2, y2);
   }
 }
コード例 #2
0
ファイル: FrequencyPlot.java プロジェクト: 4ment/beast-mcmc
  /** Paint data series */
  protected void paintData(Graphics2D g2, Variate.N xData, Variate.N yData) {

    double x1, y1, x2, y2;
    double lower = 0.0, upper = 0.0;
    int n = xData.getCount();

    if (hasQuantiles) {
      lower = raw.getQuantile(quantiles);
      upper = raw.getQuantile(1.0 - quantiles);
    } else if (hasIntervals) {
      lower = lowerInterval;
      upper = upperInterval;
    }

    g2.setStroke(lineStroke);
    for (int i = 0; i < n; i += 2) {

      x1 = (Double) xData.get(i);
      y1 = (Double) yData.get(i);
      x2 = (Double) xData.get(i + 1);
      y2 = (Double) yData.get(i + 1);

      if (y1 != y2) {
        if (barPaint != null) {
          if (hasQuantiles || hasIntervals) {
            if (x1 < lower) {
              if (x2 <= lower) {
                g2.setPaint(quantilePaint);
                fillRect(g2, x1, y1, x2, y2);
              } else {
                g2.setPaint(quantilePaint);
                fillRect(g2, x1, y1, lower, y2);
                g2.setPaint(barPaint);
                fillRect(g2, lower, y1, x2, y2);
              }
            } else if (x2 > upper) {
              if (x1 >= upper) {
                g2.setPaint(quantilePaint);
                fillRect(g2, x1, y1, x2, y2);
              } else {
                g2.setPaint(barPaint);
                fillRect(g2, x1, y1, upper, y2);
                g2.setPaint(quantilePaint);
                fillRect(g2, upper, y1, x2, y2);
              }
            } else {
              g2.setPaint(barPaint);
              fillRect(g2, x1, y1, x2, y2);
            }
          } else if (hasIncredibleSet) {
            if (traceDistribution.inCredibleSetContains((int) x1)
                || traceDistribution.inCredibleSetContains((int) x2)) {
              g2.setPaint(quantilePaint);
            } else {
              g2.setPaint(barPaint);
            }
            fillRect(g2, x1, y1, x2, y2);
          } else {
            g2.setPaint(barPaint);
            fillRect(g2, x1, y1, x2, y2);
          }
        }

        if (lineStroke != null && linePaint != null) {
          g2.setStroke(lineStroke);
          g2.setPaint(linePaint);
          drawRect(g2, x1, y1, x2, y2);
        }
      }
    }
  }