Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带MPAndroidChart的条形图:条形图不可见_Android_Mpandroidchart - Fatal编程技术网

带MPAndroidChart的条形图:条形图不可见

带MPAndroidChart的条形图:条形图不可见,android,mpandroidchart,Android,Mpandroidchart,我正在使用MPAndroidChart在一个折叠的工具栏中生成一个简单的条形图。当我添加条目时,条目的值在图表上的正确高度处可见,但我看不到条形图 这就是我创建变量的方式: final List<BarEntry> barEntries = new ArrayList<>(); final BarDataSet barDataSet = new BarDataSet(barEntries, getResources().getString(R.string.cycles_

我正在使用MPAndroidChart在一个折叠的工具栏中生成一个简单的条形图。当我添加条目时,条目的值在图表上的正确高度处可见,但我看不到条形图

这就是我创建变量的方式:

final List<BarEntry> barEntries = new ArrayList<>();
final BarDataSet barDataSet = new BarDataSet(barEntries, getResources().getString(R.string.cycles_profiled));
final BarData barData = new BarData(barDataSet);
final List barEntries=new ArrayList();
final BarDataSet BarDataSet=新的BarDataSet(barEntries,getResources().getString(R.string.cycles_profiled));
最终BarData BarData=新BarData(barDataSet);
这是我填充数据和刷新图表的方式:

final Calendar cal = getFirstDayOfWeek();
for (int i = 0; i < NUMBER_OF_DAYS; i++) {
    long date = cal.getTimeInMillis();
    barEntries.add(new BarEntry(date, map.get(date)));
    cal.add(Calendar.DAY_OF_WEEK, 1);
}
barDataSet.setValues(barEntries);
barChart.setData(barData);
barData.notifyDataChanged();
barChart.notifyDataSetChanged();
barChart.invalidate();
final Calendar cal=getFirstDayOfWeek();
对于(int i=0;i<天数;i++){
long date=cal.getTimeInMillis();
添加(新的BarEntry(日期,map.get(日期));
cal.add(日历日/周,1);
}
barDataSet.setValues(barEntries);
条形图.设置数据(barData);
barData.notifyDataChanged();
barChart.notifyDataSetChanged();
barChart.invalidate();


我在应用程序的其他部分创建条形图没有问题。当我在折叠工具栏中绘制折线图时,它也可以正常工作。

您缺少设置.setColor

试一试

barDataSet.setColor(Color.rgb(0, 155, 0)); //Put your RGB Color

当我为X轴值使用时间戳时,我也面临同样的问题,该值在库中被报告为一个bug,因此我提出了以下解决方案

首先创建arraylist:

ArrayList<String> xAxis_stringArray = new ArrayList<>();
TimeAxisValueFormatter类:

public class TimeAxisValueFormatter implements IAxisValueFormatter {

ArrayList<String> arrayList = new ArrayList<>();

public TimeAxisValueFormatter(ArrayList<String> list) {
    this.arrayList = list;
}

@Override
public String getFormattedValue(float value, AxisBase axis) {
    return arrayList.get(Math.round(value));
}}
公共类TimeAxisValueFormatter实现IAxisValueFormatter{
ArrayList ArrayList=新的ArrayList();
public TimeAxisValueFormatter(ArrayList列表){
this.arrayList=list;
}
@凌驾
公共字符串getFormattedValue(浮点值,AxisBase轴){
返回arrayList.get(Math.round(value));
}}

我刚才也遇到了同样的问题,对我来说,增加条宽解决了这个问题。我认为问题在于数据的分布如何,这会影响行的宽度。如果您有一个仅分布在一小时内的数据集,并且该数据集每分钟都有条目,我认为这个问题不会存在。但是如果你像我一样,在5个小时左右的时间里有稀疏的数据,那么barwidth就会变得越来越小,以容纳所有的条目,而bar就会消失

例如:

        data.setBarWidth(2f);

当我将条形宽度增加到80f时:

        data.setBarWidth(80f);

也有同样的问题,多亏了。 由于某些原因,
条形图
在毫秒数上有困难。。将毫秒转换为分钟:
TimeUnit.millides.toMinutes(毫秒值)
你的生活将是甜蜜的

  • 如果转换为分钟没有帮助,尝试使用不同(更高)的时间单位。对你有好处的时间单位是酒吧间的平均间隙,对我来说是小时。
    • 另一个可能有助于您设置图表样式的有趣点是,在方法
      setBarWidth(float mBarWidth)
      中,输入
      mBarWidth
      表示的是值而不是像素

不,实际上我是这样做的,我只是没有发布代码,但我是这样做的:我是这样做的:barDataSet.setColor(Color.WHITE)这与我的问题不同,因为我的图表正在显示。此外,图表的宽度和高度是在XML.Color.WHITE中设置的,它已经是实际颜色。我尝试过使用我自己的颜色和getResources().getColor(R.color.mycolor)中的一种,但结果是一样的。@a有任何线索吗?您是否尝试过
barChart.setHardwareAccelerationEnabled(false)?谢谢,我刚试过,但结果是一样的MPAndroidChart是什么版本的?结果是在所有手机上,还是只在一部手机上?@apat:你找到解决方案了吗?我面临同样的问题…@androfan不,我还没有找到解决方案,对不起。您的图形也在折叠工具栏中吗?谢谢。一个很好的解决办法。
        data.setBarWidth(80f);