请帮忙。
我正在使用 google 的 guava lib 使用 jFreeChart 生成 XY 折线图。我能够生成简单的 XY 折线图。但是我无法用它生成条形字符。
任何帮助将不胜感激。
请帮忙。
我正在使用 google 的 guava lib 使用 jFreeChart 生成 XY 折线图。我能够生成简单的 XY 折线图。但是我无法用它生成条形字符。
任何帮助将不胜感激。
来自教程指南,我相信它位于此处:pdf
条形图示例
假设我们要构建一个条形图来比较以下销售人员的利润:Jane、Tom、Jill、John、Fred。
public class BarChartExample {
public static void main(String[] args) {
// Create a simple Bar chart
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(6, "Profit", "Jane");
dataset.setValue(7, "Profit", "Tom");
dataset.setValue(8, "Profit", "Jill");
dataset.setValue(5, "Profit", "John");
dataset.setValue(12, "Profit", "Fred");
JFreeChart chart = ChartFactory.createBarChart("Comparison between Salesman",
"Salesman", "Profit", dataset, PlotOrientation.VERTICAL,
false, true, false);
try {
ChartUtilities.saveChartAsJPEG(new File("C:\\chart.jpg"), chart, 500, 300);
} catch (IOException e) {
System.err.println("Problem occurred creating chart.");
}}}
解释:
要为条形图定义数据集,请使用类对象
DefaultCategoryDataset.
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
可以使用 setValue() 方法将值添加到数据集中。
dataset.setValue(6, “Profit”, “Jane”);
第一个参数指定 Jane 获得的利润水平。第二个参数指定将出现在图例中的条形含义。要生成 JFreeChart 类的条形图对象,使用 ChartFactory 的 createBarChart() 方法。它采用与 createXYLineChart() 所需的相同的参数集。第一个参数表示图形的标题,第二个参数表示 x 轴的标签,第三个参数表示 y 轴的标签。
JFreeChart chart = ChartFactory.createBarChart("Comparison between Salesman",
"Salesman", "Profit", dataset, PlotOrientation.VERTICAL, false, true, false);
修改:与饼图的情况一样,可以使用 createBarChart3D() 方法以 3D 显示条形。
修改:
可能值得做的一件事是调整图形的外观(例如颜色)。
chart.setBackgroundPaint(Color.yellow); // Set the background colour of the chart
chart.getTitle().setPaint(Color.blue); // Adjust the colour of the title
CategoryPlot p = chart.getCategoryPlot(); // Get the Plot object for a bar graph
p.setBackgroundPaint(Color.black); // Modify the plot background
p.setRangeGridlinePaint(Color.red); // Modify the colour of the plot gridlines
希望您可以重新设计它以满足您的需求,
祝你好运!