标签: mpandroidchart

如何在饼图中仅显示数据值而不是百分比

我在Android项目中使用Android MPChart库.我想在饼图上仅显示数据值的位置.

我试过了

chart.setUsePercentValues(false);
Run Code Online (Sandbox Code Playgroud)

但它用%符号显示实际值.我想删除该%符号.如何删除%符号?

如果可能的话,我想在图例中显示数据.

饼图代码

        chart.setUsePercentValues(false);
        chart.setHoleColorTransparent(true);
        chart.setHoleRadius(60f);
        chart.setDrawHoleEnabled(true);
        chart.setRotationAngle(0);
        chart.setRotationEnabled(true);

        chart.setDescription("");

        chart.setDrawSliceText(false);

        PieDataSet dataSet = new PieDataSet(yVals, "");
        dataSet.setSliceSpace(3f);

        dataSet.setColors(colors);

        /**Set data to piechart */
        PieData data = new PieData(xVals, dataSet);
        data.setValueFormatter(new PercentFormatter());
        data.setValueTextSize(10f);
        data.setValueTextColor(Color.WHITE);
        chart.setData(data);

        chart.setDescription("");
        chart.highlightValues(null);
        chart.animateXY(1500, 1500, AnimationEasing.EasingOption.EaseOutBack);
        chart.setTouchEnabled(true);



        Legend l = chart.getLegend();
        l.setPosition(Legend.LegendPosition.RIGHT_OF_CHART);
        l.setXEntrySpace(7f);
        l.setYEntrySpace(5f);

        chart.invalidate();
Run Code Online (Sandbox Code Playgroud)

android mpandroidchart

2
推荐指数
1
解决办法
5132
查看次数

MPAndroidChart设置突出显示颜色

只是想知道是否有人想出如何在MPAndroidChart中设置条形图的突出显示颜色?目前,它就像一个深黑色(有点透明)的覆盖层。我想将其制成白色(有点透明)的覆盖物,甚至是渐变色。有点像这样:

在此处输入图片说明

android mpandroidchart

2
推荐指数
1
解决办法
3014
查看次数

MPAndroidchart如何在MarkerView中显示标签?

我正在使用MPAndroidChart,并且想用markerview显示xlabes和ylabes的值,我已经显示了y轴的值。而且我不知道如何显示x轴(xVals)的值,​​您能告诉我如何执行此操作或提供一些教程链接吗?非常感谢

android mpandroidchart

2
推荐指数
1
解决办法
378
查看次数

MPAndroidChart点击图表上的监听器

我正在使用MPAndroidChart,并想知道如何在下面的图表上执行点击事件并获得相关的回调:饼图:点击特定原因打开其详细信息.条形图:点击任意栏打开其详细信息.堆积条形图:点击任意栏打开其详细信息.

单击图表时,我需要收到通知.

android mpandroidchart

2
推荐指数
3
解决办法
1万
查看次数

MPAndroidChart的Gradle依赖性在Android Studio中不起作用

尝试安装MPAndroidChart时,我尝试按照自述文件中的说明将库添加为gradle依赖项。

编辑:我没有编辑顶级build.grade文件,只有build.gradle我应用目录中的文件。后者看起来像这样:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    useLibrary  'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.gmail.konstantin.schubert.workload"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 7
        versionName "1.1.5"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.guava:guava:17.0'
    compile 'joda-time:joda-time:2.8.2'
    compile 'com.android.support:design:23.0.0'
    compile 'com.github.PhilJay:MPAndroidChart:v2.2.3'
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我在依赖项中添加了maven存储库和compile指令。

但是,Android Studio给我一个错误:

Error:(32, 13) Failed …
Run Code Online (Sandbox Code Playgroud)

gradle android-studio android-gradle-plugin mpandroidchart jitpack

2
推荐指数
1
解决办法
2408
查看次数

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

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

仅当我点击“图表”区域时,才会显示该图表。我用谷歌搜索,但是找不到解决方案。以下是代码:

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 …
Run Code Online (Sandbox Code Playgroud)

android mpandroidchart

2
推荐指数
1
解决办法
717
查看次数

绑定适配器无效元素问题

与工作@BindingAdapter一直正常,直到如今.我得到一个不寻常的问题,我没有看到如何解决它的明确路径.

堆栈跟踪

@BindingAdapter on invalid element: setPieChartData(com.github.mikephil.charting.charts.PieChart,java.util.HashMap<java.lang.String,java.lang.Integer>,java.lang.String)
    at com.sun.tools.javac.main.Main.compile(Main.java:553)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:46)
    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:33)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:104)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:53)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)
    at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35)
    at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)
    at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:206)
    at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:187)
    at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:130)
    at com.android.build.gradle.tasks.factory.AndroidJavaCompile.compile(AndroidJavaCompile.java:49)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:163)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76)
Run Code Online (Sandbox Code Playgroud)

我的功能

@BindingAdapter({"bind:alternatives","bind:topic"})
private static void setPieChartData(PieChart pieChart, HashMap<String,Integer> alternatives, String topic) {
    PieChartHelper.initializePieChart(pieChart,alternatives,topic);
}
Run Code Online (Sandbox Code Playgroud)

我的XML布局

     <com.github.mikephil.charting.charts.PieChart
        android:id="@+id/pie_chart"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        app:alternatives="@{gameFeedItem.alternatives}"
        app:topic="@{gameFeedItem.topic}"/>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我为其他观点做了类似的解决方案.但这是唯一一个完整的自定义视图.那么PieChart类不能以这种方式支持数据绑定吗?

使用的库可以在https://github.com/PhilJay/MPAndroidChart找到

data-binding android mpandroidchart android-databinding

2
推荐指数
1
解决办法
456
查看次数

是否可以使用MPAndroidChart创建多色(堆叠)条形图?

我有以下数据使用MPAndroidChart库以图表格式表示:

Subject Marks       
    Needs Attention Average Outstanding
Hindi    1/5     2/5     2/5
English  2/7     3/7     2/7
Maths    1/3     1/3     1/3
Science  2/7     2/7     3/7
Physics  2/9     4/9     4/9
Sanskrit 3/7     3/5     0 
Run Code Online (Sandbox Code Playgroud)

我想要一个如下图表:

堆积条形图

上面的图表只是样品,我希望每个条形图中有三种颜色(堆叠).我已经制作了一个单独颜色的条形图,但不能制作这样的多色图表.在MPAndroidChart中有可能吗?

android bar-chart mpandroidchart

2
推荐指数
1
解决办法
5300
查看次数

如何在Horizo​​ntalBarChart中显示右侧的标签和左侧的值?

使用MPAndroidChart 3.0.2 绘制水平条形图.值显示在条形图的右侧.我可以使用setValueFormatter并使用IAxisValueFormatter接口在右侧显示标签.但是现在不显示这些值.

{
    HorizontalBarChart barChart = (HorizontalBarChart) itemView.findViewById(R.id.barChart);

            BarData data = new BarData();

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

        ArrayList<String> labels = new ArrayList<>();
        labels.add("January");
        labels.add("February");
        labels.add("March");
        labels.add("April");
        labels.add("May");
        labels.add("June");
        ArrayList<String> ylabels = new ArrayList<>();
        int dataCount=0;
        for (int i=0;i<6;++i) {
            BarEntry entry = new BarEntry(dataCount,(i+1)*2);
            valueSet1.add(entry);
            ylabels.add(" "+i);
            dataCount++;
        }
        List<IBarDataSet> dataSets = new ArrayList<>();
        BarDataSet bds = new BarDataSet(valueSet1, " ");
        bds.setColors(ColorTemplate.MATERIAL_COLORS);
        String[] xAxisLabels = labels.toArray(new String[0]);
        String[] yAxisLabels = ylabels.toArray(new String[0]);
        bds.setStackLabels(xAxisLabels);
        dataSets.add(bds);
        data.addDataSet(bds);
        data.setDrawValues(true);
        data.setBarWidth(0.4f); …
Run Code Online (Sandbox Code Playgroud)

charts android bar-chart mpandroidchart

2
推荐指数
1
解决办法
2698
查看次数

在MPAndroidChart条形图中为条形设置不同的颜色

如何根据Y轴的值设置不同条形的颜色?我正在使用MPAndroidChart库制作图形。这是我制作条形图的步骤:

        BarChart barChart = (BarChart) findViewById(R.id.chart);
        BarDataSet dataset = new BarDataSet(entries, "Calorie Level");


        ArrayList<String> labels = new ArrayList<String>();
        labels.add("0");
        labels.add("1");
        labels.add("2");  

        BarData data = new BarData(labels, dataset);
        barChart.setData(data);
        barChart.animateY(2000);
Run Code Online (Sandbox Code Playgroud)

我正在从以下函数计算值。我需要根据下面给出的'delta'值设置每个条形的颜色

private void addCalories(int calories, int time)
        {   totalCals += calories;
            float HBNow = HBE * time / 24;
            float delta = totalCals - HBNow;
            entries.add(new BarEntry(delta, time));
            Log.e("My Activity:", "Delta" + delta + "Time:" + time);
        }
Run Code Online (Sandbox Code Playgroud)

android mpandroidchart

2
推荐指数
1
解决办法
1304
查看次数