You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除PrimeFaces V8 HorizontalBarChartModel水平条形图下方的轴

移除PrimeFaces水平条形图的X轴(下方标尺)

需求:使用org.primefaces.model.charts.hbar.HorizontalBarChartModel实现的水平条形图,需要移除图表下方的X轴(包含刻度和轴线)。

现有实现代码:

private void createComparativoPorTransportadora() {
    this.comparativoPorTransportadora = new HorizontalBarChartModel();

    ChartData data = new ChartData();

    HorizontalBarChartDataSet hbarDataSet = new HorizontalBarChartDataSet();
    hbarDataSet.setLabel("Entregas");

    List<Number> values = new ArrayList<>();


    for (int i = 11; i >= 0; i--) {
      values.add(65 - 3 + i);
  }
    
    hbarDataSet.setData(values);

    List<String> bgColor = new ArrayList<>();

    for (int i = 0; i < 12; i++) {
      bgColor.add("#008C00");
    }
    
    hbarDataSet.setBackgroundColor(bgColor);

    List<String> borderColor = new ArrayList<>();
 
    for (int i = 0; i < 12; i++) {
      borderColor.add("#008C00");
    }

    hbarDataSet.setBorderColor(borderColor);
    hbarDataSet.setBorderWidth(2);


    data.addChartDataSet(hbarDataSet);

    List<String> labels = new ArrayList<>();

  
    for (int i = 0; i < 12; i++) {
      if (i <= 9) {
        labels.add("TRANSPORTADORA  "+i);
      }
      if (i  >  9) {
        labels.add("TRANSPORTADORA "+i);
      }
      
    }

    data.setLabels(labels);
    this.comparativoPorTransportadora.setData(data);

    // Options
    BarChartOptions options = new BarChartOptions();
    CartesianScales cScales = new CartesianScales();
    CartesianLinearAxes linearAxes = new CartesianLinearAxes();

    CartesianLinearTicks ticks = new CartesianLinearTicks();
    ticks.setBeginAtZero(true);
    linearAxes.setTicks(ticks);

    cScales.addXAxesData(linearAxes);
    options.setScales(cScales);

    Legend legend = new Legend();
    legend.setDisplay(false);
    options.setLegend(legend);

    this.comparativoPorTransportadora.setOptions(options);

  }

图表截图:
标记需移除轴的图表


解决方案

要移除下方的X轴,只需在X轴配置对象中添加显示关闭的设置,还可同步隐藏对应网格线让图表更整洁。修改后的核心代码如下:

// Options
BarChartOptions options = new BarChartOptions();
CartesianScales cScales = new CartesianScales();
CartesianLinearAxes linearAxes = new CartesianLinearAxes();

// 关闭X轴的整体显示(含轴线、刻度、标签)
linearAxes.setDisplay(false);

CartesianLinearTicks ticks = new CartesianLinearTicks();
ticks.setBeginAtZero(true);
linearAxes.setTicks(ticks);

// 隐藏X轴对应的横向网格线(可选,按需添加)
CartesianGrid grid = new CartesianGrid();
grid.setDisplay(false);
linearAxes.setGrid(grid);

cScales.addXAxesData(linearAxes);
options.setScales(cScales);

Legend legend = new Legend();
legend.setDisplay(false);
options.setLegend(legend);

this.comparativoPorTransportadora.setOptions(options);

修改说明:

  1. linearAxes.setDisplay(false):直接关闭整个X轴的显示,包括轴线、刻度线和刻度标签。
  2. 网格线隐藏:通过CartesianGrid设置setDisplay(false),可以移除X轴对应的横向网格线,若需要保留网格线可省略这部分代码。

修改后,图表下方的标尺(X轴)会完全被移除,满足需求。


内容的提问来源于stack exchange,提问作者Dev_Edimar FUll stack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:33:17