关于Jfreechart生成柱状图颜色设置讨论

在用Jfreechart生成柱状图过程发现一个问题:
Jfreechart生成的柱状图,柱子的顺序 是根据数据来随机生成的。无法做到固定。比如:
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(200, "计划", "清华大学");
        dataset.addValue(400, "实报", "清华大学");
        dataset.addValue(100, "计划", "天津大学");
        dataset.addValue(205, "实报", "天津大学");
        dataset.addValue(200, "计划", "郑州大学");
        dataset.addValue(285, "实报", "郑州大学");
这样一组数据,设置柱子颜色 : 
        renderer.setSeriesPaint(0, ‘红色’);
        renderer.setSeriesPaint(1, “绿色”);
这样生成的柱状图:计划那根柱子就是 红色, 实报那根柱子就是  蓝色
现在如果这个月没有产生计划的数据即:
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(400, "实报", "清华大学");
        dataset.addValue(205, "实报", "天津大学");
        dataset.addValue(285, "实报", "郑州大学");
这样的话 柱状图就变成: 实报变成了 红色 了。
这样两个月数据,柱状的颜色就发生了变化。Jfreechart好像做不到柱子颜色固定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用JFreeChart生成柱状图,需要进行以下步骤: 1. 创建一个数据集对象,用于存储需要绘制的数据 2. 创建一个图表对象,并设置标题、x轴和y轴标签 3. 创建一个柱状图渲染器对象,设置颜色、边框等属性 4. 将数据集对象和渲染器对象关联到图表对象中 5. 将图表对象绘制到Swing组件中,如JPanel或JFrame中 下面是一个示例代码,可以生成一个简单的柱状图: ```java import java.awt.Color; import java.awt.Dimension; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; 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.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; 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; public class BarChartExample { public static void main(String[] args) { // 生成随机数据 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); Random random = new Random(); for (int i = 0; i < 5; i++) { dataset.addValue(random.nextInt(100), "Series 1", "Category " + i); } // 创建柱状图对象 JFreeChart chart = ChartFactory.createBarChart( "Bar Chart Example", // 图表标题 "Category", // x轴标签 "Value", // y轴标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向 true, // 是否显示图例 true, // 是否生成工具提示 false // 是否生成URL链接 ); // 设置柱状图渲染器 CategoryPlot plot = (CategoryPlot) chart.getPlot(); BarRenderer renderer = (BarRenderer) plot.getRenderer(); renderer.setSeriesPaint(0, Color.BLUE); renderer.setDrawBarOutline(false); // 设置x轴标签位置 CategoryAxis xAxis = plot.getDomainAxis(); xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 设置y轴范围 NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); yAxis.setRange(0, 100); // 将图表绘制到Swing组件中 JPanel panel = new ChartPanel(chart); panel.setPreferredSize(new Dimension(500, 300)); JFrame frame = new JFrame("Bar Chart Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } } ``` 运行以上代码,即可看到生成柱状图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值