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

Achartengine:如何在系列区域内显示数值并设置水平图例

实现AChartEngine系列数值显示与水平图例设置

我来帮你搞定这两个需求,结合你已经写的代码,补全并调整后的完整实现如下:

完整代码示例

// 构建数据系列
CategorySeries series = new CategorySeries("First test");
int numSlide = portions.length;
for (int i = 0; i < numSlide; i++){
    // 这里可以保留原有的名称+百分比,也可以只放名称,数值单独显示在扇形上
    series.add(seriesNames[i], portions[i]);
}

// 构建默认渲染器
DefaultRenderer defaultRenderer = new DefaultRenderer();
SimpleSeriesRenderer simpleSeriesRenderer = null;
for (int i = 0; i < numSlide; i++){
    simpleSeriesRenderer = new SimpleSeriesRenderer();
    simpleSeriesRenderer.setColor(colors[i]);
    defaultRenderer.addSeriesRenderer(simpleSeriesRenderer);
}

// 1. 开启系列区域的数值显示
defaultRenderer.setDisplayValues(true);
// 可选:调整数值的字体大小,让显示更清晰
defaultRenderer.setValuesTextSize(18);
// 可选:设置数值的颜色,比如黑色
defaultRenderer.setValuesTextColor(Color.BLACK);

// 2. 设置水平图例
defaultRenderer.setOrientation(DefaultRenderer.HORIZONTAL);
// 可选:调整图例的位置,比如放在底部居中
defaultRenderer.setLegendPosition(DefaultRenderer.LEGEND_BOTTOM);
defaultRenderer.setLegendTextSize(16);

// 最后创建饼图视图(如果是其他图表类型,替换对应的View)
GraphicalView pieChartView = ChartFactory.getPieChartView(context, series, defaultRenderer);

关键设置说明

  • 显示系列数值:

    • 通过defaultRenderer.setDisplayValues(true)开启数值显示,这样每个系列区域(比如饼图的扇形)上就会自动显示对应的数值
    • 可以通过setValuesTextSize()和setValuesTextColor()优化数值的显示效果,避免过小或颜色不匹配
  • 设置水平图例:

    • 调用defaultRenderer.setOrientation(DefaultRenderer.HORIZONTAL)把图例从默认的垂直排列改成水平排列
    • 配合setLegendPosition()可以调整图例的显示位置,比如底部、顶部,让布局更美观
    • setLegendTextSize()可以调整图例文字的大小,提升可读性

如果你之前的代码里没写完simpleSeriesRenderer的添加步骤,记得一定要调用defaultRenderer.addSeriesRenderer(simpleSeriesRenderer)把每个系列的渲染器添加到默认渲染器里,否则图表不会正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:37:34