Tôi đang cố gắng thêm chú thích theo cốt truyện trong biểu đồ phân tán như được hiển thị bên dưới. Bất cứ ai biết nếu điều này là có thể?Có thể thêm Legend vào cốt truyện trong JFreeChart không?
Trước:
Sau:
Tôi đang cố gắng thêm chú thích theo cốt truyện trong biểu đồ phân tán như được hiển thị bên dưới. Bất cứ ai biết nếu điều này là có thể?Có thể thêm Legend vào cốt truyện trong JFreeChart không?
Trước:
Sau:
Mở rộng StandardXYItemLabelGenerator
thường là một phương pháp hữu ích, nhưng cung cấp constructors có thể đủ. Đối với máy phát điện này, MessageFormat
ArgumentIndex giá trị tương ứng với tên loạt, miền và phạm vi.
NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(2); // etc.
XYItemLabelGenerator generator =
new StandardXYItemLabelGenerator("{0} {1} {2}", format, format);
renderer.setBaseItemLabelGenerator(generator);
renderer.setBaseItemLabelsVisible(true);
Bên cạnh đó, bạn có thể kiểm soát việc ghi nhãn hàng loạt cá nhân với
renderer.setSeriesItemLabelsVisible(true);
này được kiểm soát trên các renderer:
XYPlot plot = (XYPlot) chart.getPlot();
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
renderer.setBaseItemLabelsVisible(true);
Cảm ơn cho câu trả lời. Tôi đã thử điều này nhưng bây giờ nó vẫn xuất hiện. Có điều gì khác mà tôi có thể cần phải làm trước đây không? Có thể gán nhãn cho từng ô? – rmartinus
Tôi nghĩ rằng tôi đã nhận nó ngay bây giờ .. Tôi đã tạo ra máy phát điện nhãn hiệu riêng của tôi gọi là "LegendXYItemLabelGenerator (..)" và nhận nó để làm việc. Ngoài "renderer.setBaseItemLabelsVisible (true);", tôi đã thêm "renderer.setBaseItemLabelGenerator (new LegendXYItemLabelGenerator (plot.getLegendItems()));" – rmartinus
Điều này có thể xảy ra đối với 'XYAreaRenderer' không? Tôi đang cố gắng để có được nó làm việc và tôi có thể cho 'XYLineAndShapeRenderer' nhưng mã tương tự không làm việc cho' XYAreaRenderer'. ' – skaz
Dưới đây là các máy phát điện nhãn tùy chỉnh mà tôi tạo ra:
public class LegendXYItemLabelGenerator extends StandardXYItemLabelGenerator
implements XYItemLabelGenerator, Cloneable, PublicCloneable,
Serializable {
private LegendItemCollection legendItems;
public LegendXYItemLabelGenerator(LegendItemCollection legendItems) {
super();
this.legendItems = legendItems;
}
@Override
public String generateLabel(XYDataset dataset, int series, int item) {
LegendItem legendItem = legendItems.get(series);
return legendItem.getLabel();
}
}
và sau đó tôi thêm mã này, thêm vào @ đang Guilaume của:
renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemLabelGenerator(new LegendXYItemLabelGenerator(plot.getLegendItems()));
và đây là kết quả:
+1 cho ví dụ tốt. Tôi đã đề xuất một cách tiếp cận khác trong câu trả lời khác. – trashgod
Xem thêm [ví dụ] (http://stackoverflow.com/a/8932920/230513) cho 'StandardCategoryToolTipGenerator'. – trashgod