当前位置: 首页 > 知识库问答 >
问题:

在条形图上显示自定义标签颜色

宋勇
2023-03-14

我已经自定义了项目标签的位置,这样当标签不适合条内时,标签就会出现在条外,如下所示。

当文本位于条内时,如何为标签赋予不同的颜色。e、 g内部为白色文本,外部为黑色文本。我试过下面的代码,但它总是显示黑色。我希望20个显示为白色,57个和30个显示为黑色文本

注意:这是一个为贾斯珀软件工作室条形图编写的定制器类

public class Test extends JRAbstractChartCustomizer {

    static class LabelGenerator extends StandardCategoryItemLabelGenerator {
        @Override
        public String generateLabel(CategoryDataset dataset, int series,
                int category) {
            return dataset.getRowKey(series).toString();
        }
    }

    @Override
    public void customize(JFreeChart chart, JRChart jasperChart) {

        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setRangeGridlinesVisible(false);

        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setItemMargin(-1);
        renderer.setBaseItemLabelGenerator(new LabelGenerator());
        renderer.setBaseItemLabelsVisible(true);
        ItemLabelPosition p = new ItemLabelPosition(ItemLabelAnchor.INSIDE12,
                TextAnchor.CENTER_RIGHT, TextAnchor.CENTER_RIGHT,
                -Math.PI / 2.0);
        renderer.setBaseItemLabelPaint(new Color(255, 255, 255));
        renderer.setBasePositiveItemLabelPosition(p);

        ItemLabelPosition p2 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,
                TextAnchor.CENTER_LEFT, TextAnchor.CENTER_LEFT, -Math.PI / 2.0);
        renderer.setBaseItemLabelPaint(new Color(0, 0, 0));
        renderer.setPositiveItemLabelPositionFallback(p2);

        CategoryAxis domainAxis = plot.getDomainAxis();
        domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
    }
}

共有1个答案

屠盛
2023-03-14

您可以尝试使用:

import java.awt.Color;
renderer.setBaseItemLabelPaint(Color.WHITE);
 类似资料:
  • Macbook Pro 13和15英寸笔记本电脑的键盘上都有一个交互式显示屏。使用Safari时,所有的书签都显示在Touch Bar上。有些网站(如Facebook)在Touch Bar上显示一个带有自定义背景色的自定义图标。作为一名网络开发人员,我该如何做到这一点? 我是否需要使用一个特殊的Favicon,或者使用特定图像格式的特殊HTML元标记(如og:image)?

  • 我正在努力让Jasper在图表的条形图上显示值标签。我想生成什么: 我使用Jaspersoft Studio,并在“图表绘图”选项卡中选中了“显示标签”框。出于测试目的,我使用了某种红色和紫色作为项目标签的字体颜色和背景颜色,这在条形图上应该很明显。 我的jrxml文件如下所示: 我还尝试使用定制器,基于一些SO问题: 我没法让它工作,我有上面的条形图,但没有110/760标签。 为了显示这些值,

  • 我使用Chart.js库绘制条形图,我想显示工具提示不仅在条形图悬停,而且在x轴标签悬停该条形图。我找到了用于配置的方法,但它只允许我访问当前悬停栏的数组,这是没有用的。 那个么,我怎样才能访问鼠标事件,并从那个里获取位置,将其与条形标签的位置进行比较呢?还是有别的办法? 我当前的配置: 它只打印出悬停条数据,但我坚持要想出如何扩展它以满足我需要的行为。

  • 我目前正在一个项目中使用MPAndroidChart。我正在使用带有自定义BarChartRenderer和XaxiRenderer的条形图。 我面临的问题是,我希望与高亮显示(单击)栏关联的标签与该栏的颜色相同。 有没有办法通过重写lib函数/类来做到这一点? 这是我的图表实际状态的屏幕截图(10月16日的条形图突出显示)。 这是我想要的最终结果 有人试过在MPAndroidChart上做这种事

  • 1)我正在练习用图形的东西,以便将这个功能添加到我的应用程序中,我希望上面的标签(xAxis基数)只显示在条目出现的地方。 我还没有在网上找到合适的解决方案,目前它出现在每个xAxis上,从第一个条目到最后一个条目,如下图所示: 我希望它没有一个sI删除,如下图所示: 2) 第二个问题是,我想在(x=5,y=7)中画图,然后在(x=1,y=3)中画画,但它不允许我添加一个x小于图中任何其他条目的条

  • 我正试图实现类似的图表。例如,三月份通过卡和现金(40美元现金和38美元卡支付)收取的出租车运输付款。我需要用主色和主色的浅色版本显示那个栏。我有两个问题什么样的图表能满足我的需求?如何制作具有相同颜色(深蓝色和浅蓝色)两种不同色调的酒吧? 我已经尝试了以下代码,我确信数据集没有像我前面解释的那样包括卡和现金选项。 谢谢你。