1
我使用Jfree圖表0.9.20的XYLineChartDemo繪製程序中正在運行的進程的執行時間。我的X軸代表時間,Y軸代表Pid。我如何編輯Jfreechart文件來使我的Y軸表示我想要的值而不是數字0範圍?還有一種方法可以將線繪製得更寬一些?Jfree圖表更改Y軸數據
我使用Jfree圖表0.9.20的XYLineChartDemo繪製程序中正在運行的進程的執行時間。我的X軸代表時間,Y軸代表Pid。我如何編輯Jfreechart文件來使我的Y軸表示我想要的值而不是數字0範圍?還有一種方法可以將線繪製得更寬一些?Jfree圖表更改Y軸數據
研究這個:
public JFreeChart createChart(String axisX, String axisY){
JFreeChart chart = ChartFactory.createTimeSeriesChart(null, axisX, axisY, dataSeries, true, true, false);
final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
renderer.setSeriesLinesVisible(0,true);
renderer.setSeriesShapesVisible(0, true);
//percentage (y-axis)
final NumberAxis percentAxis = new NumberAxis(axisY);
percentAxis.setInverted(false);
percentAxis.setRange(0.0, 100.0);
//time (x-axis)
final DateAxis timeAxis = new DateAxis(axisX);
timeAxis.setStandardTickUnits(DateAxis.createStandardDateTickUnits(TimeZone.getDefault(), Locale.ENGLISH));
double range = 0;
switch (format){
case ONE_MINUTE_RANGE: range = 60*1000; break;
case TEN_MINUTE_RANGE: range = 10*60*1000; break;
case ONE_HOUR_RANGE: range = 60*60*1000; break;
}
timeAxis.setRange(System.currentTimeMillis()-range/2, System.currentTimeMillis()+range/2); //time duration based on format chosen
XYPlot plot = chart.getXYPlot();
plot.setDomainAxis(timeAxis);
plot.setRangeAxis(percentAxis);
plot.setBackgroundPaint(Color.white);
plot.setRangeGridlinePaint(Color.gray);
plot.setRangeZeroBaselinePaint(Color.gray);
plot.setDomainGridlinePaint(Color.gray);
plot.setForegroundAlpha(0.5f);
plot.setRenderer(renderer);
chart.setBackgroundPaint(Color.white);
return chart;
}
謝謝!我已經設定了較低的範圍是我的最低pid,較高的是最高的pid。任何關於如何改變XY折線圖的寬度的指針? – Sathya 2011-03-12 10:07:34
@ user644575您應該使用ChartPanel容器來更改JFreeChart對象的寬度和高度 – eee 2011-03-16 13:51:53
@ user644575:對於系列行筆劃(將其稱爲「寬度」),請使用LineAndShapeRenderer.setSeriesStroke(int series,java.awt .Stroke stroke)'設置筆畫的方法。 – eee 2011-03-17 15:17:58