Pee*_*hut 3 java charts jfreechart categories
我需要以下类型的图表:
它应该是一个"steped"折线图,在垂直轴上有类别,如下所示:

我找到了这个类别步骤图的例子,但它的方向不适合我的目的.
到目前为止我所做的就是这个,但是你可以看到红线不适合图表的方向(应该是水平的):

相应的代码:
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);
Run Code Online (Sandbox Code Playgroud)
我不能让它发挥作用.有任何想法吗?
提前致谢!
看起来您需要使用带有a XYStepRenderer和a 的标准XYLineChart SymbolAxis来替换默认的Range Axis而不是a 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);
Run Code Online (Sandbox Code Playgroud)
和a 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);
Run Code Online (Sandbox Code Playgroud)
在此示例中,SymbolAxis为Axis中的每个值提供了一个替代标签
| 归档时间: |
|
| 查看次数: |
2666 次 |
| 最近记录: |