先简单介绍一下目前程序情况: 多个图表(Plot)按网格布局组成的一个大Panel;图例是由plot自动生成;
问题:如果是由plot自动生成的话,那么会有多个图例对应多个图表;
可我想实现的是整体的图例,那么图例应该怎么放?怎样对应呢(对应某一个图表好象不太好)?附加一个小问题:在JFreeChart中可以设置标题可见吗?好象没找到.
问题:如果是由plot自动生成的话,那么会有多个图例对应多个图表;
可我想实现的是整体的图例,那么图例应该怎么放?怎样对应呢(对应某一个图表好象不太好)?附加一个小问题:在JFreeChart中可以设置标题可见吗?好象没找到.
解决方案 »
- 从InputStream中read出来个"-1",代表什么?
- 实现Web登陆遇到的问题
- 多线程一小问题,大家帮帮忙!
- 我在按钮监听器中 事例了一个连接库的操作,在操作库的过程中想把一些结果 显示到JTextArea ,但是..
- Java中文件上传的问题.
- 一个简单Applet(Hello World!)程序为什么在别的电脑不能运行??(我是初学者)
- 当按下button7时,怎样在方法中得到另一个窗口界面?请帮我把这个程序看看,谢谢!
- 怎样用ant把jar文件打成ear或war包.
- 我的独立日8.1!摆脱微软!(我对人们对Linux态度的一些看法)
- Java中怎样定义全局变量???
- 【新手提问】awt中 向Menu中添加MenuItem时报错
- 关于actionListener监听的问题
但是需要自己控制呢?不知道到底操作哪个对象;
package demo;import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.MultiplePiePlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.util.TableOrder;public class MultiplePieChartDemo1 extends ApplicationFrame
{ public MultiplePieChartDemo1(String s)
{
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(600, 380));
setContentPane(jpanel);
} private static CategoryDataset createDataset()
{
double ad[][] = {
{
3D, 4D, 3D, 5D
}, {
5D, 7D, 6D, 8D
}, {
5D, 7D, (0.0D / 0.0D), 3D
}, {
1.0D, 2D, 3D, 4D
}, {
2D, 3D, 2D, 3D
}
};
CategoryDataset categorydataset = DatasetUtilities.createCategoryDataset("Region ", "Sales/Q", ad);
return categorydataset;
} private static JFreeChart createChart(CategoryDataset categorydataset)
{
JFreeChart jfreechart = ChartFactory.createMultiplePieChart("Multiple Pie Chart", categorydataset, TableOrder.BY_ROW, true, true, false);
MultiplePiePlot multiplepieplot = (MultiplePiePlot)jfreechart.getPlot();
JFreeChart jfreechart1 = multiplepieplot.getPieChart();
PiePlot pieplot = (PiePlot)jfreechart1.getPlot();
pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}"));
pieplot.setLabelFont(new Font("SansSerif", 0, 8));
return jfreechart;
} public static JPanel createDemoPanel()
{
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
} public static void main(String args[])
{
MultiplePieChartDemo1 multiplepiechartdemo1 = new MultiplePieChartDemo1("Multiple Pie Chart Demo 1");
multiplepiechartdemo1.pack();
RefineryUtilities.centerFrameOnScreen(multiplepiechartdemo1);
multiplepiechartdemo1.setVisible(true);
}
}
* all LegendTitles.
*/
BlockContainer blockcontainer = new BlockContainer(new BorderArrangement());
/**
* XYPlot
*/
for (int i = 0; i < axydataset.length; i++) {
XYItemRenderer standardxyitemrenderer1;
standardxyitemrenderer1 = jfreechart.getXYPlot().getRenderer();
standardxyitemrenderer1.setStroke(new BasicStroke(0.5f));
if (standardxyitemrenderer1 instanceof XYLineAndShapeRenderer) {
XYLineAndShapeRenderer xylineandshaperenderer = (
XYLineAndShapeRenderer) standardxyitemrenderer1;
xylineandshaperenderer.setShape(new CurveCircle( -1.0d,
-1.0d, 2.0d));
xylineandshaperenderer.setBaseShapesVisible(true);
xylineandshaperenderer.setBaseShapesFilled(false);
xylineandshaperenderer.setBaseItemLabelsVisible(true);
}
/**
* setting subtitle
*/
LegendTitle legendtitle = new LegendTitle(standardxyitemrenderer1);
legendtitle.setMargin(new RectangleInsets(2D, 2D, 2D, 2D));
legendtitle.setBorder(new BlockBorder());
if (i % 2 == 0) {
blockcontainer.add(legendtitle, RectangleEdge.RIGHT);
}
else {
blockcontainer.add(legendtitle, RectangleEdge.LEFT);
}
}
我也在弄这个类似的问题啊,你所说的问题,我觉得跟我刚解决掉的差不多,发来跟你交流下!!!