JFreeChart柱子显示数据

JFreeChart chart = ChartFactory.createBarChart("图表标题","", "",dataset, PlotOrientation.HORIZONTAL, true, false, false);
StackedBarRenderer renderer = new StackedBarRenderer();
CategoryPlot plot = chart.getCategoryPlot();
//设置柱子显示对应的数值
renderer.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setDefaultItemLabelsVisible(true);
plot.setRenderer(renderer);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JFreeChart是一个开源的Java图表库,可以用于创建各种类型的图表,包括折线图、柱状图、饼图等。要在JFreeChart显示tooltip,可以按照以下步骤进行操作: 1. 创建一个ChartPanel对象,该对象将用于显示图表。 2. 为ChartPanel对象添加一个MouseListener,以便捕获鼠标事件。 3. 在MouseListener的mouseMoved方法中,获取鼠标的坐标,并使用ChartPanel的getChartRenderingInfo方法获取图表的渲染信息。 4. 使用ChartRenderingInfo对象的getEntityCollection方法获取图表中的实体集合。 5. 遍历实体集合,判断鼠标坐标是否在实体的区域内。 6. 如果鼠标在实体的区域内,则可以通过实体对象的getToolTipText方法获取tooltip的内容。 7. 将tooltip内容显示在合适的位置,例如使用JOptionPane.showMessageDialog方法显示一个弹出窗口。 下面是一个示例代码,演示了如何在JFreeChart显示tooltip: ```java import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.entity.ChartEntity; import org.jfree.chart.entity.XYItemEntity; import org.jfree.chart.plot.XYPlot; import org.jfree.data.xy.XYDataset; import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; public class JFreeChartTooltipExample { public static void main(String[] args) { // 创建一个示例的XYDataset XYDataset dataset = createDataset(); // 创建一个折线图 JFreeChart chart = ChartFactory.createXYLineChart( "示例图表", // 图表标题 "X", // X轴标签 "Y", // Y轴标签 dataset // 数据集 ); // 创建一个ChartPanel对象,并设置大小 ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(500, 300)); // 添加鼠标移动事件监听器 chartPanel.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseMoved(MouseEvent e) { // 获取鼠标坐标 int mouseX = e.getX(); int mouseY = e.getY(); // 获取图表的渲染信息 ChartRenderingInfo info = chartPanel.getChartRenderingInfo(); // 获取图表中的实体集合 EntityCollection entities = info.getEntityCollection(); // 遍历实体集合,判断鼠标坐标是否在实体的区域内 for (Object entityObj : entities.getEntities()) { ChartEntity entity = (ChartEntity) entityObj; if (entity instanceof XYItemEntity) { Shape shape = entity.getArea(); if (shape.contains(mouseX, mouseY)) { // 如果鼠标在实体的区域内,获取tooltip内容并显示 String tooltip = entity.getToolTipText(); JOptionPane.showMessageDialog(null, tooltip); break; } } } } }); // 创建一个窗口,并将ChartPanel添加到窗口中 JFrame frame = new JFrame("JFreeChart Tooltip Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(chartPanel); frame.pack(); frame.setVisible(true); } private static XYDataset createDataset() { // 创建一个示例的XYDataset // 这里使用了一个简单的随机数据 XYSeries series = new XYSeries("数据系列"); for (int i = 0; i < 10; i++) { series.add(i, Math.random() * 100); } XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(series); return dataset; } } ``` 这个示例代码创建了一个简单的折线图,并在鼠标移动时显示tooltip。你可以根据自己的需求修改代码,以适应不同类型的图表和tooltip内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值