作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题与此链接中提出的问题非常相似
Create barchart using jfreechart with bars of same category together
如果我运行下面的示例,我会得到图像形式的图表(附有图像)
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(2, "Lesson-1", "27-sep-2012");
dataset.setValue(7, "Lesson-2", "27-sep-2012");
dataset.setValue(4, "Lesson-3", "27-sep-2012");
JFreeChart chart = ChartFactory.createBarChart(
"BarChart using JFreeChart", "Student sample", "Marks sample", dataset,
PlotOrientation.VERTICAL, true, true, false);
chart.setBackgroundPaint(Color.yellow);
chart.getTitle().setPaint(Color.blue);
CategoryPlot plot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) plot.getRenderer();
br.setItemMargin(0.7);
try {
ChartUtilities.saveChartAsJPEG(new File(
"D:/jfreeimages/sample.jpeg"), chart, 500, 300);
} catch (IOException e) {
e.printStackTrace();
}
对于 2012 年 9 月 27 日这一日期,我需要将所有条形图聚集起来并没有任何间隙地显示。他们中的许多人建议我减少 barRenderer 的余量(代码如下)
BarRenderer br =(BarRenderer) plot.getRenderer() ;
br.setItemMargin(0.0);
但这使得条形图的尺寸变得更大,我只想要所附图像中的条形图尺寸。请帮忙。
最佳答案
除了渲染器中的 setItemMargin(0)
之外,您还可以调整轴边距和面板大小以获得所需的效果。
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
/**
* @see http://stackoverflow.com/a/12659576/230513
*/
public class StudentSample {
public static void main(String[] args) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(2, "Lesson-1", "27-sep-2012");
dataset.setValue(7, "Lesson-2", "27-sep-2012");
dataset.setValue(4, "Lesson-3", "27-sep-2012");
JFreeChart chart = ChartFactory.createBarChart(
"BarChart using JFreeChart", "Student sample", "Marks sample",
dataset, PlotOrientation.VERTICAL, true, true, false);
chart.setBackgroundPaint(Color.yellow);
chart.getTitle().setPaint(Color.blue);
CategoryPlot plot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) plot.getRenderer();
br.setItemMargin(0);
CategoryAxis domain = plot.getDomainAxis();
domain.setLowerMargin(0.25);
domain.setUpperMargin(0.25);
JFrame f = new JFrame("TreeEditorDemo");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ChartPanel cp = new ChartPanel(chart){
@Override
public Dimension getPreferredSize() {
return new Dimension(300, 300);
}
};
f.add(cp);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
//try {
// ChartUtilities.saveChartAsJPEG(
// new File("temp.jpg"), chart, 300, 300);
//} catch (IOException e) {
// e.printStackTrace();
//}
}
}
关于java - 将条形图中具有相同类别的条形聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12653715/
我是一名优秀的程序员,十分优秀!