关于网友提出的“ JFreeChar中饼图如何实现类似柱图的刷新功能?”问题疑问,本网通过在网上对“ JFreeChar中饼图如何实现类似柱图的刷新功能?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: JFreeChar中饼图如何实现类似柱图的刷新功能?
描述: 使用JFreeChar包中的柱图功能,可以调用方法:
CategoryPlot p = jfreechart.getCategoryPlot();
//设置新的数据集
jfreechart.getCategoryPlot().setDataset(createDataset());
刷新数据集,以刷新界面。 可是在画饼图的时候没有类似的方法,怎么才能实现刷新饼图数据集的
功能呢?
解决方案1: 不好意思上边发错了,我疏忽了DefaultPieDataset dataset2 = new DefaultPieDataset();
dataset1.setValue("苹果1",100);
dataset1.setValue("梨子1",200);
dataset1.setValue("葡萄1",300);
dataset1.setValue("香蕉1",400);
dataset1.setValue("荔枝1",500);
没有给dataset2 加东西,加到dataset1上去了。。
现在把代码改一下,完全实现了你要的效果
package com.testchart;
import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.PolarItemRenderer;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.urls.CategoryURLGenerator;
import org.jfree.chart.urls.StandardCategoryURLGenerator;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetChangeEvent;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class TestRediantu {
public static void main(String[] args) throws IOException
{
DefaultPieDataset dataset1 = new DefaultPieDataset();
dataset1.setValue("苹果",100);
dataset1.setValue("梨子",200);
dataset1.setValue("葡萄",300);
dataset1.setValue("香蕉",400);
dataset1.setValue("荔枝",500);
JFreeChart chart3 = ChartFactory.createPieChart3D(
"水果产量图", // 图表标题
dataset1, true, // 是否显示图例
false,
false
);
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:\\fruit.jpg");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
ChartUtilities.writeChartAsJPEG(fos_jpg, chart3, 400, 500);
fos_jpg.close();
} catch (IOException e) {
e.printStackTrace();
}
FileOutputStream fos_jpg1= new FileOutputStream("D:\\fruit1.jpg");
DefaultPieDataset dataset2 = new DefaultPieDataset();
dataset2.setValue("苹果1",100);
dataset2.setValue("梨子1",200);
dataset2.setValue("葡萄1",300);
dataset2.setValue("香蕉1",400);
dataset2.setValue("荔枝1",500);
PiePlot3D plot=(PiePlot3D)chart3.getPlot();
plot.setDataset(dataset2);
// plot.datasetChanged(new DatasetChangeEvent(plot, dataset2));
ChartUtilities.writeChartAsJPEG(fos_jpg1, chart3, 400, 500);
}
}
为了比较方便,我分别在D盘生成了2张图片,供你比较,我用的版本为1.0
解决方案2: jfreechart.getCategoryPlot().setDataset(createDataset());
这个重新获得数据集之后,他的图应该还是要重新绘制的吧,这个流程也一样要走一遍的吧~~~
解决方案3:
不懂啊!!!\
帮你顶!!!!!
以上介绍了“ JFreeChar中饼图如何实现类似柱图的刷新功能?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3247746.html