gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:24 27 4
gpt4 key购买 nike

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

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

另一个问题是我无法去掉每个栏上的标签。我写的

        barChart.setDrawValueAboveBar(false);

但是 Bar 的右侧仍然有一个值。

包含条形图的 fragment 的屏幕截图: Screenshot

这是完整的代码

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;
}

}

这是我的 color.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>

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

最佳答案

尝试使用:

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

这应该给你一个固定的最大值。

如果您想摆脱标签,请尝试:

setDrawLabels(false)

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

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

编辑:使用它来删除值

setTime.setDrawValues(false);

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

setTime.setColor(Color.CYAN);

关于java - 如何设置 mpandroidchart 条形图中条形(y 轴)的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38351047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com