Я работаю с jFreeChart на Eclipse (в Windows), и я хочу нарисовать диаграмму gantt для процессоров.
Я делаю диаграмму XYрисунок диаграммы с JFreeChart
Но моя программа нарисовала мне строку с только P0. Я хочу что-то вроде
- ничьих от 0 до 10 -> P0
- затем от 10 до 20 -> рисует H
- затем от 20 до 30 ----> рисую ждать
- от 30 до 40 ---> рисуем P0
- от 35 до 40 -> рисуем H
Код:
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class JFreeChartLineChartExample extends JFrame {
private static final long serialVersionUID = 1L;
public JFreeChartLineChartExample(String applicationTitle, String chartTitle) {
super(applicationTitle);
// based on the dataset we create the chart
JFreeChart pieChart = ChartFactory.createXYLineChart(chartTitle, "Time", "Processors",
createDataset(),PlotOrientation.VERTICAL, true, true, false);
// Adding chart into a chart panel
ChartPanel chartPanel = new ChartPanel(pieChart);
// settind default size
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
// add to contentPane
setContentPane(chartPanel);
}
private XYDataset createDataset() {
final XYSeries P0 = new XYSeries("P0");
P0.add(0, 1);
P0.add(10, 1);
P0.add(35, 1);
P0.add(50, 1);
P0.add(85, 1);
P0.add(110, 1);
final XYSeries P2 = new XYSeries("P2");
final XYSeries P1 = new XYSeries("P1");
final XYSeries H = new XYSeries("H");
H.add(10, 1);
H.add(20, 1);
H.add(45, 1);
H.add(100, 1);
final XYSeries wait = new XYSeries("wait");
wait.add(80, 1);
wait.add(90, 1);
wait.add(105, 1);
final XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(P0);
dataset.addSeries(P2);
dataset.addSeries(P1);
dataset.addSeries(H);
dataset.addSeries(wait);
return dataset;
}
public static void main(String[] args) {
JFreeChartLineChartExample chart = new JFreeChartLineChartExample(" GANTT ", " GANTT");
chart.pack();
chart.setVisible(true);
}
}
В чем вопрос? – ManyQuestions
, когда я выполняю свою программу, у меня есть строка (красная линия только PO), что я хочу, от 0 до 10 рисовать P0 с (красная линия), затем от 10 до 20 рисовать H, например, с (синей линией) от 20 до 30 подождите (с зеленой линией) –
, а затем вернитесь к P0 и нарисуйте его красной линией от 30 до 400 для примера. –