【问题标题】:Jfreechart - how to add a legend item with a dash?Jfreechart - 如何添加带有破折号的图例项?
【发布时间】:2011-11-03 07:21:29
【问题描述】:

我想添加一个带有破折号 (-) 的图例项来表示图表中的某些系列。提供的默认形状只有 Plot.DEFAULT_LEGEND_ITEM_CIRCLE 和 Plot.DEFAULT_LEGEND_ITEM_BOX。有类似 Plot.DEFAULT_LEGEND_ITEM_LINE 的东西吗?如何创建一个?

【问题讨论】:

    标签: java jfreechart legend legend-properties


    【解决方案1】:

    您可以创建自己的图例项目源。假设您有一组与要显示的图例相对应的元素集合,称为legendKeys

    class LineLegendItemSource implements LegendItemSource {
        public LegendItemCollection getLegendItems() {
         LegendItemCollection itemCollection = new LegendItemCollection();
         for (Comparable comparable : legendKeys) {
            Paint paint = // get the paint you want
            LegendItem item = new LegendItem("string to display", 
                                             "description", 
                                             "tooltip", 
                                             "url", 
                                             new Line2D.Double(0, 5, 10, 5), paint);
            itemCollection.add(item);
         }
         return itemCollection; 
      }
    }
    

    然后你需要从图表中删除旧图例,并添加新的:

    JFreeChart chart = // your chart 
    chart.removeLegend();
    LegendTitle legend = new LegendTitle(new LineLegendItemSource());
    chart.addLegend(legend);
    

    如您所见,LegendItem 构造函数具有一定的形状,因此您基本上可以在其中绘制任何您想要的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 2021-01-14
      • 2012-10-01
      • 2021-10-20
      • 2021-11-09
      相关资源
      最近更新 更多