关于JFreeChart横向柱状图如何将数值显示到柱子顶端的问题

最经项目用到了很多数据统计表,当然毫无意外的选择了同为开源的JFreeChart插件,根据项目要求在网上疯狂查资料,但是发现凡是将数值显示到柱子顶端的柱状图,网上的资料写的都以正常竖直方向的柱状图偏多,我需要实现的是水平方向的柱状图,所以我将JFreeChart jfreechart = ChartFactory.createBarChart3D("流量统计", "日期", "浏览量", dataset, PlotOrientation.HORIZONTAL, false, false, false)中第五个参数改为水平方向,但是效果却不是我要的。经多方查找和试验,还参考了英文原档...呵呵,皇天不负有心人,终于被我解决了!其实只要在给Renderer对象设置一下就好了,下边贴代码:
                BarRenderer3D renderer = new BarRenderer3D();
		renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		renderer.setBaseItemLabelsVisible(true);
		renderer.setBaseItemLabelPaint(Color.BLACK);
		renderer.setBaseItemLabelFont(new Font("宋书",Font.PLAIN,15));
		renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3, TextAnchor.BASELINE_RIGHT));

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要生成一个横向的、一个柱子上有三种颜色的堆栈柱状图,可以按照以下步骤进行: 1. 创建一个CategoryDataset对象,设置数据。 ```java DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, "Series 1", "Category 1"); dataset.addValue(2.0, "Series 2", "Category 1"); dataset.addValue(3.0, "Series 3", "Category 1"); ``` 2. 创建一个CategoryAxis对象,设置坐标轴。 ```java CategoryAxis categoryAxis = new CategoryAxis(); ``` 3. 创建一个NumberAxis对象,设置数据轴。 ```java NumberAxis numberAxis = new NumberAxis(); ``` 4. 创建一个StackedBarRenderer对象,设置渲染器。 ```java StackedBarRenderer renderer = new StackedBarRenderer(); ``` 5. 设置渲染器的颜色。 ```java renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesPaint(1, Color.GREEN); renderer.setSeriesPaint(2, Color.BLUE); ``` 6. 创建一个CategoryPlot对象,设置数据集、坐标轴、数据轴、渲染器。 ```java CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, numberAxis, renderer); ``` 7. 创建一个JFreeChart对象,设置标题、CategoryPlot。 ```java JFreeChart chart = new JFreeChart("Stacked Bar Chart Demo", JFreeChart.DEFAULT_TITLE_FONT, plot, false); ``` 8. 创建一个ChartPanel对象,将JFreeChart添加到面板上。 ```java ChartPanel chartPanel = new ChartPanel(chart); ``` 9. 将面板添加到窗口上。 ```java JFrame frame = new JFrame("Stacked Bar Chart Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(chartPanel); frame.pack(); frame.setVisible(true); ``` 完整代码示例: ```java import java.awt.Color; import javax.swing.JFrame; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.renderer.category.StackedBarRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; public class StackedBarChartDemo { public static void main(String[] args) { CategoryDataset dataset = createDataset(); CategoryAxis categoryAxis = new CategoryAxis(); NumberAxis numberAxis = new NumberAxis(); StackedBarRenderer renderer = new StackedBarRenderer(); renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesPaint(1, Color.GREEN); renderer.setSeriesPaint(2, Color.BLUE); CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, numberAxis, renderer); JFreeChart chart = new JFreeChart("Stacked Bar Chart Demo", JFreeChart.DEFAULT_TITLE_FONT, plot, false); ChartPanel chartPanel = new ChartPanel(chart); JFrame frame = new JFrame("Stacked Bar Chart Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(chartPanel); frame.pack(); frame.setVisible(true); } private static CategoryDataset createDataset() { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, "Series 1", "Category 1"); dataset.addValue(2.0, "Series 2", "Category 1"); dataset.addValue(3.0, "Series 3", "Category 1"); return dataset; } } ``` 这样就可以生成一个横向的、一个柱子上有三种颜色的堆栈柱状图了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值