3


次のタイプのグラフが必要です: 次のよう
に、縦軸にカテゴリを含む「階段状」の折れ線グラフにする必要があります。

こうあるべきだ

このカテゴリ ステップ チャートの例を見つけましたが、向きが目的に合っていません。

http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/renderer/category/CategoryStepRenderer.html


これまでに行ったのはこれだけですが、ご覧のとおり、赤い線がチャートの向きに合っていません(水平にする必要があります):

現在の状態

これに対応するコード:

   DefaultCategoryDataset ds = new DefaultCategoryDataset(); 

// create dataset

    for (int k = 0; k < ffCount; k++) {
                  StateSignal ss1 = (StateSignal) this.ffDSet.getFframes().get(k).getSignals().get(i);
                  ds.setValue((double) k + 1, ss1.getName(), ss1.getStates().get(0).getStatus());

     }
    CategoryStepRenderer categorysteprenderer = new CategoryStepRenderer(false);
    categorysteprenderer.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());
    CategoryAxis categoryaxis = new CategoryAxis("Category");
    NumberAxis numberaxis = new NumberAxis("Value");
    CategoryPlot categoryplot = new CategoryPlot(ds, categoryaxis, numberaxis, categorysteprenderer);
    categoryplot.setRangePannable(true);
    categoryplot.setOrientation(PlotOrientation.HORIZONTAL);
    chart = new JFreeChart("test", null, categoryplot, true);

うまくいきません。何か案は?

前もって感謝します!

4

1 に答える 1

8

標準の XYLineChart を aXYStepRendererと aで使用して、 aと水平方向のプロット方向SymbolAxisではなく、デフォルトの Range Axis を置き換える必要があるようですCategoryStepRenderer

ステータス A と B を 1 と 2 などの数値に関連付けると、次のようなグラフを作成できます。

ここに画像の説明を入力

これを使用してXYStepRenderer

  XYStepRenderer renderer = new XYStepRenderer();
  renderer.setBaseShapesVisible(true);
  renderer.setSeriesStroke(0, new BasicStroke(2.0f));
  renderer.setSeriesStroke(1, new BasicStroke(2.0f));
  renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
  renderer.setDefaultEntityRadius(6);
  plot.setRenderer(renderer);

そしてSymbol Axis

  String[] grade =  new String[3];
  grade[0] = "";
  grade[1] = "Status A";
  grade[2] = "Status B";
  SymbolAxis rangeAxis = new SymbolAxis("", grade);
  rangeAxis.setTickUnit(new NumberTickUnit(1));
  rangeAxis.setRange(0,3);
  plot.setRangeAxis(rangeAxis);

この例でSymbolAxisは、軸の各値に代替ラベルを提供します

于 2012-10-11T12:07:48.593 に答える