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

如何在mpandroidchart条形图中设置条形图(y轴)的比例

秦城
2023-03-14

我刚刚开始学习为Android编码和开发。

现在,我正在尝试这样做:Project Fi App UI然而,我在MPAndroidChart库中找不到参数或方法来设置条形图(或我正在使用的水平条形图)中条形图的比例。条形图中的条形图只是自动决定其比例。我想要的是一个固定的Y轴最大范围,图中条形的比例根据其值而变化。

另一个问题是,我无法摆脱每个酒吧上的标签。我写道

        barChart.setDrawValueAboveBar(false);

但条的右边仍然有一个值。

包含条形图的片段的屏幕截图:屏幕截图

这是完整的代码

public class MainFragment extends android.support.v4.app.Fragment{
public MainFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.main_fragment, container, false);

    HorizontalBarChart barChart = (HorizontalBarChart)rootView.findViewById(R.id.time_chart);

    ArrayList<BarEntry> vals = new ArrayList<BarEntry>();

    BarEntry val = new BarEntry(0.20f,0);
    vals.add(val);

    BarDataSet setTime = new BarDataSet(vals,"time used");
    setTime.setAxisDependency(YAxis.AxisDependency.LEFT);
    setTime.setColor(R.color.colorAccent);

    ArrayList<String> xVals = new ArrayList<String>();
    xVals.add("1");

    BarData data = new BarData(xVals, setTime);
    barChart.setData(data);
    barChart.setBackgroundColor(ContextCompat.getColor(rootView.getContext(),R.color.chartBackGround));
    barChart.setDrawValueAboveBar(false);
    barChart.setDrawGridBackground(false);
    barChart.setDrawBarShadow(true);
    barChart.setDescription("");
    barChart.setVisibleYRangeMaximum(1.0f,barChart.getAxisLeft().getAxisDependency());

    barChart.getLegend().setEnabled(false);
    barChart.getXAxis().setEnabled(false);
    barChart.getXAxis().setDrawLabels(false);
    barChart.getAxisRight().setEnabled(false);
    barChart.getAxisLeft().setEnabled(false);
    barChart.getAxisLeft().setAxisMaxValue(1.0f);
    barChart.getAxisLeft().setAxisMinValue(0);
    barChart.getAxisLeft().setDrawLabels(false);

    barChart.invalidate();

    return rootView;
}

}

这是我的颜色。xml

<resources>
<color name="colorPrimary">#607d8b</color>
<color name="colorPrimaryDark">#455a64</color>
<color name="colorAccent">#64ffda</color>
<color name="windowBackground">#ffffff</color>
<color name="chartBackGround">#ffffff</color>
<color name="colorTransparent">#00ffffff</color>

谢谢你的帮助!!我真的在任何地方都找不到这个问题的答案。

共有1个答案

端木令
2023-03-14

尝试使用:

YAxis leftAxis = chart.getAxisLeft();
leftAxis.setAxisMaxValue(maxValue);

这将为您提供一个固定的最大值。

如果要清除标签,请尝试:

setDrawLabels(false)

此方法可以应用于任一轴,具体取决于您要跳过的标签。

您需要的所有信息都可以在留档中找到。

编辑:使用它来删除值

setTime.setDrawValues(false);

在您的评论中,您还询问了如何更改数据集的颜色。为此,请使用:

setTime.setColor(Color.CYAN);
 类似资料:
  • 我是Python新手,需要使用pyplot和matplotlib生成条形图。到目前为止,我是这样尝试的(我只附上了重要的代码片段):

  • Highcharts 组合图 以下实例演示了双Y轴, 柱形图,线条图组合。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。 配置 yAxis 配置 在 yAxis 属性中添加两条Y轴的值 。 var yAxis = [{ // 第一条Y轴 }, { // 第二条Y轴 } }] 实例 文件名:highcharts_combin

  • 这是关于以下条款:https://github.com/PhilJay/MPAndroidChart/wiki/Setting-Data在条形图标题下。在下面的给定代码中: 产出是: 此处不显示X值。点击这里查看截图 如何将X轴值设置为月份(1月1日,1月2日,1月3日...),如文章中所示。

  • 我使用MPAndroidChart条形图...除了x轴,其他都没问题...标签上的条形没有正确对齐。当我缩放图表时,条形图出现在它的标签上,但这种缩放不是我想要的,当我缩放标签时,标签会重复,直到下一个,以此类推。我的数据就像是eg: 年龄是我的标签,它是字符串类型...我需要它是字符串标签。 这是我的c代码# 对于条入口的x位置,我只使用一个称为c的整数,它在每个循环中增加1,所以它给出了0f,

  • 我需要从条形图中删除右侧图例。 这是我的密码。 谢谢

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