Występuje problem z nałożonym wykresem JFreeChart. Używam JFreeChart 1.0.13. Co próbuję zrobić wydaje się, jak było łatwiej zrobić we wcześniejszych wersjach JFreeChart?Pomoc z nakładką JFreeChart
Wykres przedstawia wykres liniowy i wykres słupkowy. Zakres danych wykreślony przez wykres liniowy dla osi Y leży w przedziale 0-100, a oś wykresu słupkowego znajduje się w zakresie 0-5.
Indywidualnie, kiedy układam poszczególne wykresy i maluję je, wyglądają świetnie. Oto przykład:
Bar Wykres Linia
Ale kiedy je nakładać, wykres bar zostaje zmniejszony aby wyglądać niezwykle bezużyteczny ... przypuszczalnie dlatego, że waga tych dwóch zestawów danych są tak różne.
Przykład:
Co ja naprawdę chcę to rozdzielić dane serii dla dwóch zestawów danych i wyświetlać zakres 0-100 dla wykresu liniowego na lewej osi Y dłoń i mieć wykres słupkowy wyświetlane w pełnym rozmiarze, jak w moim pierwszym przykładzie poniżej, ale mają skalę 0-5 wyświetlaną na prawej stronie osi Y wykresu.
Aby utworzyć wykres, ja najpierw tworząc wykres słupkowy przy użyciu XYSeriesCollection, dodanie danych i tworzenia fabuły ...
XYSeriesCollection histogramDataset= new XYSeriesCollection();
XYSeries xy= new XYSeries("Temp");
xy.add(100,0.0);
xy.add(101,0.3769791404875597);
histogramDataset.addSeries(xy);
...
final NumberAxis xAxis = new NumberAxis("Temperature C");
xAxis.setAutoRangeIncludesZero(false);
final ValueAxis yAxis = new NumberAxis("Percent Time above Temperature");
final XYItemRenderer renderer = new XYBarRenderer();
final XYPlot plot = new XYPlot((XYDataset) histogramDataset, xAxis, yAxis, renderer);
Potem utworzyć wykres liniowy w podobny sposób i dodać Druga seria do działki ...
final XYSeries xy = new XYSeries("First");
final XYDataset xySeriesData = new XYSeriesCollection();
final XYItemRenderer xyLineRenderer = new XYLineAndShapeRenderer();
xyLineRenderer.setSeriesShape(0, new Line2D.Double(0.0, 0.0, 0.0, 0.0));
xyLineRenderer.setSeriesStroke(0, new BasicStroke(4.5f));
xy.add(100,100.0);
xy.add(101,100.0);
xyseriesData.add(xy);
plot.setDataset(1, xySeriesData);
plot.setRenderer(1, xyLineRenderer);
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
Podejrzewam, że jakoś każdy wykres musi być jego własną fabryką i połączony ze sobą. Czy ktoś może pomóc? To, co zamierzam tutaj zrobić, to coś takiego:
Z wyjątkiem tego, że nie chcę, aby wykres słupkowy był obrazem tła. Oś X powinna być taka sama, a oś Y powinna znajdować się po prawej stronie z odpowiednią skalą, która pozwala na pokazanie pełnego rozmiaru wykresu.
Wszelkie/wszystkie odpowiedzi są doceniane ...
Nie należy do http://www.jfree.org/jfreechart/; tylko zadowolony klient i czasami współpracownik. – trashgod
Dzięki za pchnięcie we właściwym kierunku. Dodawanie: final ValueAxis yAxis = new NumberAxis ("Procent czasu w temperaturze"); \t \t plot.setRangeAxis (1, yAxis); plot.mapDatasetToRangeAxis (0, 1); MapDataSetToRange był kluczem ... – Griff