作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个包含许多部分的饼图,此饼图的图例呈现为一行。如何将图例呈现为两列?
最佳答案
方法getLegendItem()
,参见here , 提供在您选择的任何 Container
中呈现图例项所需的所有信息。 GridLayout(0, 2)
会将它们排列成两列,任意行数。要抑制现有图例,请在调用图表工厂时将 legend
设置为 false
;按照建议,这些元素仍然可用 here .
附录:基于 PieChartDemo1
,此片段使用 getLegendItems().iterator
和此 ColorIcon
的变体.
public static JPanel createDemoPanel() {
JPanel panel = new JPanel();
JFreeChart chart = createChart(createDataset());
panel.add(new ChartPanel(chart));
panel.add(createLegendPanel((PiePlot) chart.getPlot()));
return panel;
}
private static JPanel createLegendPanel(PiePlot plot) {
JPanel panel = new JPanel(new GridLayout(0, 2, 5, 5));
Iterator iterator = plot.getLegendItems().iterator();
while (iterator.hasNext()) {
LegendItem item = (LegendItem) iterator.next();
JLabel label = new JLabel(item.getLabel());
label.setIcon(new ColorIcon(8, item.getFillPaint()));
panel.add(label);
}
return panel;
}
关于java - 如何在列中显示饼图的图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13307500/
我是一名优秀的程序员,十分优秀!