Tôi gặp sự cố với biểu đồ lớp phủ JFreeChart. Tôi đang sử dụng JFreeChart 1.0.13. Những gì tôi đang cố gắng để làm có vẻ như nó đã được dễ dàng hơn để làm trong phiên bản trước của JFreeChart?Trợ giúp với lớp phủ JFreeChart
Biểu đồ hiển thị biểu đồ dạng đường và biểu đồ thanh. Phạm vi dữ liệu được vẽ bởi biểu đồ đường cho trục Y nằm trong khoảng 0-100 và trục cho biểu đồ thanh nằm trong khoảng 0-5.
Cá nhân, khi tôi đặt ra mỗi biểu đồ và vẽ nó, chúng trông tuyệt vời. Dưới đây là một ví dụ:
Bar Chart Dòng Chart
Nhưng khi tôi bọc, các biểu đồ thanh được thu nhỏ lại để trông cực kỳ vô dụng ... có lẽ vì quy mô của hai tập dữ liệu rất khác nhau.
Ví dụ:
Những gì tôi thực sự muốn là để phân chia các dữ liệu hàng loạt cho hai tập dữ liệu và hiển thị phạm vi 0-100 cho biểu đồ đường thẳng trên trục tay Y trái và phải có biểu đồ thanh hiển thị kích thước đầy đủ như trong ví dụ đầu tiên của tôi bên dưới, nhưng có tỷ lệ 0-5 được hiển thị ở bên phải trục Y của biểu đồ.
Để tạo đồ thị, tôi lần đầu tiên tạo ra các biểu đồ thanh sử dụng một XYSeriesCollection, thêm các dữ liệu và tạo ra những âm mưu ...
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);
Sau đó, tôi tạo ra các biểu đồ đường thẳng trong một cách tương tự và thêm chuỗi thứ hai cho cốt truyện ...
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);
Nghi ngờ của tôi là bằng cách nào đó mỗi đồ thị cần phải là cốt truyện của chính nó và kết hợp với nhau. Có ai giúp được không? Những gì tôi sẽ cho đây là một cái gì đó như thế này:
Ngoại trừ tôi không muốn biểu đồ thanh làm hình nền. Trục X phải giống nhau và trục Y phải ở phía bên tay phải với tỷ lệ phù hợp cho phép biểu đồ được hiển thị kích thước đầy đủ.
Bất kỳ/tất cả trả lời được đánh giá cao ...
Không liên kết với http://www.jfree.org/jfreechart/; chỉ là một khách hàng hài lòng và đôi khi là người đóng góp. – trashgod
Cảm ơn bạn đã đẩy đúng hướng. Thêm: Giá trị cuối cùngAxis yAxis = new NumberAxis ("Phần trăm thời gian ở nhiệt độ"); \t \t plot.setRangeAxis (1, yAxis); plot.mapDatasetToRangeAxis (0, 1); MapDataSetToRange là khóa ... – Griff