1
即時通訊工作與jfreechart,並嘗試使XYLineChart工作得很好。JFreeChart XYSeries作爲字符串
我的問題是,y標籤是雙值,我需要字符串。
我的代碼:
DefaultXYDataset result = new DefaultXYDataset();
XYSeries series1 = new XYSeries("Words");
series1.add(0, 0.3);
series1.add(1, 0.5);
series1.add(2, 0.6);
series1.add(3, 0.3);
series1.add(4, 0.2);
series1.add(5, 1);
result.addSeries(getTitle(), series1.toArray());
我想是這樣的:
XYSeries series1 = new XYSeries("Words");
series1.add("word 1", 0.3);
series1.add("word 2", 0.5);
...
使用符號軸上的更新代碼:
private void test2() {
XYDataset dataset = createDataset2();
JFreeChart chart = createChart2(dataset, "NN");
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 250));
panel_visualize.add(chartPanel);
}
private DefaultXYDataset createDataset2()
{
DefaultXYDataset result = new DefaultXYDataset();
XYSeries series1 = new XYSeries("Words");
series1.add(0.3, 0);
series1.add(0.5, 1);
series1.add(0.6, 2);
series1.add(0.3, 3);
series1.add(0.2, 4);
result.addSeries(getTitle(), series1.toArray());
return result;
}
private JFreeChart createChart2(XYDataset dataset, String title)
{
JFreeChart chart = ChartFactory.createXYLineChart(title, // chart title
"Words",
"Activation",
dataset, // data
PlotOrientation.HORIZONTAL,
true, // include legend
true,
false);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setForegroundAlpha(0.5f);
String[] grade = new String[5];
grade[0] = "Temp 0";
grade[1] = "Temp 1";
grade[2] = "Temp 2";
grade[3] = "Temp 3";
grade[4] = "Temp 4";
SymbolAxis rangeAxis = new SymbolAxis("Words", grade);
rangeAxis.setTickUnit(new NumberTickUnit(1));
rangeAxis.setRange(0,grade.length);
plot.setRangeAxis(rangeAxis);
return chart;
}
也許'SymbolAxis',看到[這裏](http://stackoverflow.com/a/12839170/230513)。 – trashgod
Thx爲答案。是否可以用字符串標記Y軸 – hehe
這取決於你如何創建圖表。請修改您的問題以包含[sscce](http://sscce.org/)。 – trashgod