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

MPAndroid条形图仅在点击图表区域后显示图形,否则显示“没有可用的图表数据”

於和志
2023-03-14

我正在使用MPAndroid库在我的Android应用程序中显示一个简单的条形图。条形图有时会完美地显示数据。但是,有时,尽管DataSet有数据,但它会显示消息“没有可用的图表数据”。

图表仅在我点击图表区域时显示。我谷歌了一下,但找不到解决方案。以下是代码:

if (mCount > 0){mBarDataSet = new BarDataSet(mBarEntryAssessmentList, "Assessment Count");
        mBarDataSet.setBarSpacePercent(5f);
        mBarData = new BarData(trimmedSubjectNameList, mBarDataSet);
        mBarData.setValueFormatter(new BarEntryValueFormatter()); // Setting a Value formatter to show Integer data instead of Float
        mBarChart.setData(mBarData);
        mBarChart.setDescription("");
        mBarChart.setDrawGridBackground(false);
        mBarChart.setDragEnabled(true);
        mBarChart.setTouchEnabled(true);
        mBarChart.setClickable(true);
        mBarChart.setScaleXEnabled(false);
        mBarChart.setScaleYEnabled(false);
        mBarChart.setVisibleXRange(1, 4);
        mBarChart.setHighlightPerDragEnabled(false);
        mBarChart.setHighlightPerTapEnabled(true); // set this to true if we want to listen to click events
        mBarChart.setOnChartValueSelectedListener(StudentProgressActivity.this);

        XAxis xAxis = mBarChart.getXAxis();
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        xAxis.setDrawLabels(true);
        xAxis.setDrawGridLines(false);
        xAxis.setLabelsToSkip(0); // Shows all the labels as initially we had problems showing all the labels

        YAxis leftAxis = mBarChart.getAxisLeft();
        leftAxis.setDrawLabels(true);
        leftAxis.setDrawGridLines(false);
        leftAxis.setAxisMinValue(0f); // Removes padding below YAxis minimum value and XAxis labels

        YAxis rightAxis = mBarChart.getAxisRight();
        rightAxis.setDrawLabels(false);
        rightAxis.setDrawGridLines(false);
    } else {
        mBarChart.setDescription("");
        mBarChart.setNoDataText("No Assessments yet");
    }

任何帮助都将不胜感激。

共有1个答案

颜奇希
2023-03-14

最后,在您的病情之外,添加:

mBarChart.invalidate();
mBarChart.refreshDrawableState();

希望这能解决你的问题。

 类似资料:
  • 我的线条怎样才能整齐又不太侧身?

  • 我正在尝试使用MPAndroid图表来显示2组数据。没有语法错误或崩溃,但没有显示任何数据。这是我的代码。 每次我运行时页面都会崩溃。日志显示,“一个或多个DataSet Entry数组比此ChartData对象的x值数组长。”我记录了我的x轴值并检查了,两个数组的大小都是一样的!

  • 我有一个这样的数据帧: 现在,我想绘制水平条形图,其中平台名称位于相应的条形图中,使其看起来像这样: 我该怎么做?

  • 我使用MPAndroidChart条形图(分组数据集)显示两个用户的数据。它正在显示数据,但问题是,它从一开始就没有在x轴上显示数据,因此所有条形图都不可见。 阵列: 条形图: 我已经尝试了stackoverflow的答案,但没有解决我的问题。请帮助! 更新: 是否可以将标签与条形图居中?

  • 图形与显示 [AGP] agp={off|try_unsupported} off 表示关闭内核的AGP(CONFIG_AGP)支持; try_unsupported 表示尝试驱动那些不受支持的芯片(可能会导致系统崩溃或数据错误) [HW,DRM] gamma=浮点数 设置显示器的Gamma值。 video.brightness_switch_enabled={0|1} [背景知识]如果ACPI

  • 线形图,区域图和条形图允许您在 X/Y 轴上绘制数据。 首先,您需要选择定义值轴的 指标 。 指标聚合: Count 计数 聚合返回所选索引模式中元素的原始计数。 Average 该聚合返回数字字段的平均值 。从下拉菜单中选择一个字段。 Sum 总和 聚合返回数字字段的总和。从下拉菜单中选择一个字段。 Min 最小值 聚合返回数字字段的最小值。从下拉菜单中选择一个字段。 Max 最大值 聚合返回数