A powerful ๐Ÿš€ Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

Overview

banner

Release API Android Arsenal Gitter Twitter

โšก A powerful & easy to use chart library for Android โšก

Charts is the iOS version of this library

Table of Contents

  1. Quick Start
    1. Gradle
    2. Maven
  2. Documentation
  3. Examples
  4. Questions
  5. Donate
  6. Social Media
  7. More Examples
  8. License
  9. Creators

Gradle Setup

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

dependencies {
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
}

Maven Setup

<!-- <repositories> section of pom.xml -->
<repository>
    <id>jitpack.io</id>
   <url>https://jitpack.io</url>
</repository>

<!-- <dependencies> section of pom.xml -->
<dependency>
    <groupId>com.github.PhilJay</groupId>
    <artifactId>MPAndroidChart</artifactId>
    <version>v3.1.0</version>
</dependency>

Documentation ๐Ÿ“”

See the documentation for examples and general use of MPAndroidChart.

See the javadocs for more advanced documentation.


Examples ๐Ÿ‘€

Download the MPAndroidChart Example App or look at the source code.

ScreenShot


Questions & Issues ๐Ÿค”

This repository's issue tracker is only for bugs and feature requests. The maintainers ask that you refrain from asking questions about how to use MPAndroidChart through the issue tracker.

Please read the documentation first, then ask all your questions on stackoverflow.com for the fastest answer.


Donations โค๏ธ

This project needs you! If you would like to support this project's further development, the creator of this project or the continuous maintenance of this project, feel free to donate. Your donation is highly appreciated (and I love food, coffee and beer). Thank you!

My Bitcoin Wallet (Bitcoin only)

1G8G6tqQ3oh38BvDH3xq8o6gGVMvBTkcUg

My Ethereum Wallet (Ethereum only)

0x04ef098bf9f91871391363e3caf791afa3adc39b

Lightning Network (tippin.me)

PayPal

  • Donate 5 $: Thank's for creating this project, here's a coffee (or some beer) for you!
  • Donate 10 $: Wow, I am stunned. Let me take you to the movies!
  • Donate 15 $: I really appreciate your work, let's grab some lunch!
  • Donate 25 $: That's some awesome stuff you did right there, dinner is on me!
  • Or you can also choose what you want to donate, all donations are awesome!

Social Media ๐Ÿ”ฅ

If you like this library, please tell others about it ๐Ÿ’• ๐Ÿ’•

Share on Twitter Share on Google+ Share on Facebook

If you like, you can follow me on Twitter @PhilippJahoda.


More Examples ๐Ÿ‘


LineChart (with legend, simple design)

alt tag

LineChart (with legend, simple design)

alt tag

LineChart (cubic lines)

alt tag

LineChart (gradient fill)

alt tag

BarChart (with legend, simple design)

alt tag

BarChart (grouped DataSets)

alt tag

Horizontal-BarChart

alt tag

Combined-Chart (bar- and linechart in this case)

alt tag

PieChart (with selection, ...)

alt tag

ScatterChart (with squares, triangles, circles, ... and more)

alt tag

CandleStickChart (for financial data)

alt tag

BubbleChart (area covered by bubbles indicates the yValue)

alt tag

RadarChart (spider web chart)

alt tag


License ๐Ÿ“„

Copyright 2020 Philipp Jahoda

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Special Thanks โค๏ธ

These people rock!

Comments
  • Support for x values (instead of x indices)

    Support for x values (instead of x indices)

    Thanks for your great library!

    We just found one major drawback. We like to draw a time series chart where the values are not equidistant. The x values where points are drawn must be at any position not just distributed equally by index. For example, the x axis represents the date and time (as in this blood pressure chart http://www.andreas-schreiber.net/activities/quantified-self/blood-pressure/).

    This applies to line chart and scatter chart.

    enhancement 
    opened by onyame 116
  • Date on X axis.

    Date on X axis.

    hi, i am using MPandroid chart in my app. i want to plot chart using values on y axis and date on x axis. I don't find any datetime axis in mp android chart. is there any way to plot x axis using date. i have values against date. i want to show the dates in (ddMMM-yy) format on x axis and the values on y axis. anyone can pass me the sample link for the same.

    sample for data: Date(X axis) Value(Y axis) 01/01/2001 966.78 01/02/2001 666.78 01/03/2001 966.78 01/04/2001 966.78 01/05/2001 966.78 01/06/2001 966.78 01/07/2001 966.78

    guide.

    opened by joshisunil-1983 73
  • how to display dynamic labels for XAxis

    how to display dynamic labels for XAxis

    I am using bar chart and i am unable to display dynamic xaxis labels on the chart, so far i have been able to show only one label for all bars using value formatter, please can anyone show me how to do it. It is a good library but still not sufficient documentation for noobs. currently i am using this code:

    XAxis xval = barChart.getXAxis();
            xval.setDrawLabels(true);
            xval.setValueFormatter(new AxisValueFormatter() {
                @Override
                public String getFormattedValue(float value, AxisBase axis) {
                    return  "Label";
                }
    
                @Override
                public int getDecimalDigits() {
                    return 0;
                }
            });
    
        xval.setPosition(XAxis.XAxisPosition.BOTTOM);
        xval.setDrawGridLines(false);
    
    opened by ghost 36
  • Entries disappearing while zooming ScatterChart

    Entries disappearing while zooming ScatterChart

    I'm using a ScatterChart with cca. 10k xVals, and about 200 Entries. When I zoom, all entries on the graph disappear except the ones on the far right. When I drag to the far right, they suddenly appear (regardless of the zoom amount).

    bug 
    opened by Paladinko 36
  • Unable to import library via Gradle

    Unable to import library via Gradle

    I'm trying to import library like said in Usage section in my Android project. I'm currently using Gradle, ofc.

    This is a piece of my build.gradle

    [...]
    repositories {
            maven { url 'http://repo1.maven.org/maven2' }
            maven { url 'https://jitpack.io' }
        }
    }
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.1.1'
        compile 'com.android.support:design:23.1.1'
        compile 'com.github.PhilJay:MPAndroidChart:v2.2.0'
    }
    

    and this is the error I got: schermata 2016-01-29 alle 15 29 15

    I'm not new to importing new dependencies to my project and I really need to say that this is the first time I can't include a new dependency in this way....

    On the other side, including JAR library in lib folder does the trick.

    opened by Shadie6 31
  • Invalid index 0, size is 0 in lineChart

    Invalid index 0, size is 0 in lineChart

    in the first, I add an empty chart data ,then

    java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    11-09 19:34:42.397 E/AndroidRuntime( 5201): 	at             java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
    11-09 19:34:42.397 E/AndroidRuntime( 5201): 	at java.util.ArrayList.get(ArrayList.java:308)
    11-09 19:34:42.397 E/AndroidRuntime( 5201): 	at com.github.mikephil.charting.data.DataSet.getEntryForIndex(DataSet.java:286)
    11-09 19:34:42.397 E/AndroidRuntime( 5201): 	at com.github.mikephil.charting.utils.Transformer.generateTransformedValuesLine(Transformer.java:184)
    11-09 19:34:42.397 E/AndroidRuntime( 5201): 	at com.github.mikephil.charting.renderer.LineChartRenderer.drawValues(LineChartRenderer.java:545)
    11-09 19:34:42.397 E/AndroidRuntime( 5201): 	at com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:251)
    

    I think it is because of you dont check size when you draw values

    opened by madroidmaq 29
  • I get a negative NegativeArraySizeException at generateTransformedValuesScatter

    I get a negative NegativeArraySizeException at generateTransformedValuesScatter

    This is the data I pass along:

    DataSet, label: Equities, entries: 22
    Entry, x: 2.4622053E-4 y (sum): -2.5103273E-4 Entry, x: 1.4264166E-4 y (sum): 1.06562635E-4 Entry, x: 1.0069651E-4 y (sum): 2.2954303E-4 Entry, x: 3.3205854E-6 y (sum): 6.520928E-5 Entry, x: 2.1512537E-4 y (sum): -1.926993E-4 Entry, x: 1.4847405E-4 y (sum): -1.5883509E-4 Entry, x: 2.8459038E-4 y (sum): 1.1068245E-4 Entry, x: 1.3150444E-4 y (sum): 1.4332784E-4 Entry, x: 7.719888E-5 y (sum): 1.6962597E-4 Entry, x: 1.3707434E-4 y (sum): 1.7498349E-4 Entry, x: 2.5035875E-4 y (sum): 3.8239497E-4 Entry, x: 1.0254524E-4 y (sum): 1.468406E-4 Entry, x: 1.5425305E-4 y (sum): 4.278698E-5 Entry, x: 1.2035284E-4 y (sum): 3.2309844E-4 Entry, x: 8.58292E-5 y (sum): 4.6827746E-4 Entry, x: 8.473067E-5 y (sum): 4.3495893E-4 Entry, x: 3.0464705E-4 y (sum): -2.1406553E-4 Entry, x: 2.2885398E-4 y (sum): -1.1195301E-4 Entry, x: 1.5392534E-4 y (sum): 4.011409E-5 Entry, x: 2.240534E-4 y (sum): 1.1159029E-5 Entry, x: 2.7432045E-4 y (sum): -1.8261799E-5 Entry, x: 4.9744867E-5 y (sum): -1.1376083E-4 
    

    And I get a NegativeArraySizeException:

    java.lang.NegativeArraySizeException: -10
                                                                                            at com.github.mikephil.charting.utils.Transformer.generateTransformedValuesScatter(Transformer.java:110)
                                                                                            at com.github.mikephil.charting.renderer.ScatterChartRenderer.drawValues(ScatterChartRenderer.java:106)
                                                                                            at com.github.mikephil.charting.renderer.CombinedChartRenderer.drawValues(CombinedChartRenderer.java:95)
                                                                                            at com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:272)
                                                                                            at android.view.View.draw(View.java:15231)
    
    
        public float[] generateTransformedValuesScatter(IScatterDataSet data, float phaseX,
                                                        float phaseY, int from, int to) {
    
            /// ------- interestingly i get a 17 for the from and an 11 for the to which is n fact negative.
            final int count = (int) ((to - from) * phaseX + 1) * 2;
    
            if(valuePointsForGenerateTransformedValuesScatter.length != count){
                valuePointsForGenerateTransformedValuesScatter = new float[count];
            }
            float[] valuePoints = valuePointsForGenerateTransformedValuesScatter;
    
            for (int j = 0; j < count; j += 2) {
    
                Entry e = data.getEntryForIndex(j / 2 + from);
    
                if (e != null) {
                    valuePoints[j] = e.getX();
                    valuePoints[j + 1] = e.getY() * phaseY;
                }else{
                    valuePoints[j] = 0;
                    valuePoints[j + 1] = 0;
                }
            }
    
            getValueToPixelMatrix().mapPoints(valuePoints);
    
            return valuePoints;
        }
    
    

    I use the current/newest version from maven.

    opened by KIC 27
  • Fill LineChart sometimes not working

    Fill LineChart sometimes not working

    With last version 2.0.8 sometimes the chart is not filled. When I revert back to 2.0.7 it works again.

    set1.setDrawFilled(true); set1.setFillColor(getResources().getColor(R.color.red_down)); mChart.setData(data) mChart.invalidate();

    regards

    opened by warmax 27
  • How to add this library to my project?

    How to add this library to my project?

    Hey ,PhilJay. I want to develop an application with a chart functionality. So I found MPAndroidChart on github, I really like this project. But because I'm just starting out with github, so I do not know how to apply some of the features of this project to my application. I would be very appreciate if you could tell me the the way to apply it to my application๏ผ

    opened by sparrowjack 26
  • How to hide labels of pie part if its value is 0

    How to hide labels of pie part if its value is 0

    I want to hide labels in some parts of pie chart when its value is 0, because I don't want to see these labels is stacked as picture bellow bug How do I fix it???

    opened by hongsonitptit 22
  • v.3.0.0-beta1 BarChart: ArrayIndexOutOfBoundsException when formatter applied, granularity is enabled and there's only one data point

    v.3.0.0-beta1 BarChart: ArrayIndexOutOfBoundsException when formatter applied, granularity is enabled and there's only one data point

    Hi, I've faced an ArrayIndexOutOfBoundsException under following conditions:

    • AxisValueFormatter is applied to x axis, where formatted value is an item of a list;
    • granularity is enabled for x axis;
    • the data consists of only one value.

    Here's the stacktrace:

    java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
    at java.util.ArrayList.get(ArrayList.java:310)
    at com.example.asuprun.tempconverter.AnotherActivity$1.getFormattedValue(AnotherActivity.java:65)
    at com.github.mikephil.charting.components.AxisBase.getFormattedLabel(AxisBase.java:451)
    at com.github.mikephil.charting.components.AxisBase.getLongestLabel(AxisBase.java:437)
    at com.github.mikephil.charting.renderer.XAxisRenderer.computeSize(XAxisRenderer.java:78)
    at com.github.mikephil.charting.renderer.XAxisRenderer.computeAxisValues(XAxisRenderer.java:73)
    at com.github.mikephil.charting.renderer.XAxisRenderer.computeAxis(XAxisRenderer.java:66)
    at com.github.mikephil.charting.charts.BarLineChartBase.notifyDataSetChanged(BarLineChartBase.java:339)
    at com.github.mikephil.charting.charts.Chart.setData(Chart.java:318)
    at com.example.asuprun.tempconverter.AnotherActivity.plotData(AnotherActivity.java:88)
    at com.example.asuprun.tempconverter.AnotherActivity.toggleData(AnotherActivity.java:98)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
    at android.view.View.performClick(View.java:4780)
    at android.view.View$PerformClick.run(View.java:19866)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    

    Simplified code:

    public class AnotherActivity extends AppCompatActivity {
        private ViewGroup chartView;
        private Map<String, Integer> data;
        private BarChart chart;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.chart_layout);
    
            chartView = (ViewGroup) findViewById(R.id.chart_view);
            chart = new BarChart(this);
            data = new LinkedHashMap<>();
            data.put("6/15", 36);
            data.put("8/15", 23);
            chartView.addView(chart);
            plotData();
        }
    
        private void plotData() {
            chart.clear();
            final ArrayList<String> xVals = new ArrayList<>();
            ArrayList<BarEntry> yVals = new ArrayList<>();
    
            for (Map.Entry<String, Integer> entry : data.entrySet()) {
                yVals.add(new BarEntry(xVals.size(), entry.getValue()));
                xVals.add(entry.getKey());
            }
    
            XAxis xAxis = chart.getXAxis();
            xAxis.setDrawGridLines(false);
            xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
            xAxis.setGranularityEnabled(true);
            xAxis.setValueFormatter(new AxisValueFormatter() {
                                        @Override
                                        public String getFormattedValue(float value, AxisBase axis) {
                                            try {
                                                return xVals.get((int) value);
                                            } catch (IndexOutOfBoundsException e) {
                                                e.printStackTrace();
                                                return "stub";
                                            }
                                        }
    
                                        @Override
                                        public int getDecimalDigits() {
                                            return 0;
                                        }
                                    }
            );
    
            chart.getAxisRight().setEnabled(false);
            YAxis axisLeft = chart.getAxisLeft();
            axisLeft.setAxisMinValue(0f);
            axisLeft.setGranularityEnabled(true);
            axisLeft.setGranularity(1f);
    
            BarDataSet dataSet = new BarDataSet(yVals, "Data");
            BarData barData = new BarData(dataSet);
            barData.setBarWidth(0.7f);
            chart.setData(barData);
            chart.invalidate();
        }
    
        public void toggleData(View view) {
            if (data.size() > 1) {
                data.remove("8/15");
            } else {
                data.put("8/15", 23);
            }
            plotData();
        }
    }
    
    opened by antohama 21
  • Fix scatter shape size bug

    Fix scatter shape size bug

    Scatter shape sizes were not converted from dp to pixels in the shape renderers so they were drawn at inconsistent size on different density screens.

    PR Checklist:

    • [x] I have tested this extensively and it does not break any existing behavior.
    • [x] I have added/updated examples and tests for any new behavior.
    • [x] If this is a significant change, an issue has already been created where the problem / solution was discussed: [issue link]

    PR Description

    Scatter shape size was treated as pixels instead of dp. This is a bug and leads to inconsistent appearance on different density screens. This is also inconsistent with other places (e.g. scatter hole size or line chart marker size) where values were properly treated as dp.

    This change fixes the scatter shape renderers so they scale the user-specified size from dp to pixels before drawing the marker.

    Using pixels in just one place is a bug. This may cause existing chart markers to change size - and users who were pre-scaling this one dimension by density manually will have to remove that.

    opened by tgvoskuilen 0
  • Scatter shape size treated as pixels, not dp

    Scatter shape size treated as pixels, not dp

    Summary The value passed to setScatterShapeSize on ScatterDataSet is not converted from dp to pixels in the shape renderers (e.g. CircleShapeRenderer) so the value is treated as a size in pixels, not dp. The scatter shape hole size, however, is correctly converted from dp to pixels. This is present in all the scatter shape renderers.

    Expected Behavior All sizes are in dp (as indicated in comments and documentation).

    Possible Solution Convert value from dp to pixels in the scatter shape renderers. e.g. change

    final float shapeSize = dataSet.getScatterShapeSize();
    

    to

    final float shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize());
    

    in all the renderers.

    Device (please complete the following information):

    • Library Version 3.1.0

    Additional Context I will submit a PR for this

    opened by tgvoskuilen 0
  • Feedback

    Feedback

    STOP RIGHT THERE!

    Issues are NOT for getting help, only for reporting bugs and feature requests.

    Search open and closed issues to see if your question already has an answer. However, do not create a new issue.

    Instead, do the following:

    1. Download the Example App and check out the source code. 90% of the time there is an example that does exactly what you are trying to do.

    2. Look at the Wiki for the official documentation for MPAndroidChart. You can also browse the javadoc for a more detailed tutorial of the API.

    3. Go to StackOverflow and ask your questions there. The community will be much more helpful and willing to offer guidance.

    You have been warned!

    From now on, any issues asking for help will get closed with a link to this file.

    Additional Context

    ADD A REWARD using Speed to SOLVE this issue QUICKLY and SUPPORT this project.

    opened by Penetreitor10 0
  • jitpack.io is down

    jitpack.io is down

    * What went wrong:
    9 actionable tasks: 9 executed
    Execution failed for task ':mergeGoogleBetaNativeLibs'.
    > Could not resolve all files for configuration ':googleBetaRuntimeClasspath'.
       > Could not resolve com.github.devnullorthrow:MPAndroidChart:3.2.0-alpha.
         Required by:
             project :
          > Could not resolve com.github.devnullorthrow:MPAndroidChart:3.2.0-alpha.
             > Could not get resource 'https://www.jitpack.io/com/github/devnullorthrow/MPAndroidChart/3.2.0-alpha/MPAndroidChart-3.2.0-alpha.pom'.
                > Could not GET 'https://www.jitpack.io/com/github/devnullorthrow/MPAndroidChart/3.2.0-alpha/MPAndroidChart-3.2.0-alpha.pom'. Received status code 521 from server: 
    

    Please relocate to another hosting...

    screenshot
    opened by rtsisyk 7
  • I want a pie chart that has lines instead of having the labels inside of the slices

    I want a pie chart that has lines instead of having the labels inside of the slices

    I made a pie chart using MP Chart. The values are inside of the pie pieces, but I want to have lines pointing to each piece of the pie indicating the value. Here is the code that I used to build my pie chart.

    The issue I'm having is that there isn't a ton of stuff online about MP Chart and a lot of the stuff that is online is in Java. My code is in Kotlin. Trying to find something in Kotlin. Beginner to developing.

    Image of my current Pie Chart What I want my pie chart to look like

    //***Start Pie Chart Code***//
        val pieChart = binding.pieChart
        // on below line we are setting user percent value,
        // setting description as enabled and offset for pie chart
        pieChart.setUsePercentValues(false)
        pieChart.getDescription().setEnabled(false)
        pieChart.setExtraOffsets(5f, 10f, 5f, 5f)
        // on below line we are setting drag for our pie chart
        pieChart.setDragDecelerationFrictionCoef(0.95f)
        // on below line we are setting hole
        // and hole color for pie chart
        pieChart.setDrawHoleEnabled(true)
        pieChart.setHoleColor(Color.WHITE)
        // on below line we are setting circle color and alpha
        pieChart.setTransparentCircleColor(Color.WHITE)
        pieChart.setTransparentCircleAlpha(110)
        // on  below line we are setting hole radius
        pieChart.setHoleRadius(20f)
        pieChart.setTransparentCircleRadius(5f)
        // on below line we are setting center text
        pieChart.setDrawCenterText(true)
        // on below line we are setting
        // rotation for our pie chart
        pieChart.setRotationAngle(0f)
        // enable rotation of the pieChart by touch
        pieChart.setRotationEnabled(true)
        pieChart.setHighlightPerTapEnabled(true)
        // on below line we are setting animation for our pie chart
        pieChart.animateY(1400, Easing.EaseInOutQuad)
        // on below line we are disabling our legend for pie chart
        pieChart.legend.isEnabled = false
        pieChart.setEntryLabelColor(Color.WHITE)
        pieChart.setEntryLabelTextSize(12f)
    
        // on below line we are creating array list and
        // adding data to it to display in pie chart
        val entries: ArrayList<PieEntry> = ArrayList()
    
        entries.add(PieEntry(proteinFloat,"g"))
        entries.add(PieEntry(carbFloat,"g"))
        entries.add(PieEntry(fatFloat,"g"))
    
        // on below line we are setting pie data set
        val dataSet = PieDataSet(entries, "Mobile OS")
    
        // on below line we are setting icons.
        dataSet.setDrawIcons(false)
    
        // on below line we are setting slice for pie
        dataSet.sliceSpace = 3f
        dataSet.iconsOffset = MPPointF(0f, 40f)
        dataSet.selectionShift = 5f
    
        // add a lot of colors to list
        val colors: ArrayList<Int> = ArrayList()
        colors.add(resources.getColor(R.color.purple_200))
        colors.add(resources.getColor(R.color.blue))
        colors.add(resources.getColor(R.color.red))
    
        // on below line we are setting colors.
        dataSet.colors = colors
    
        // on below line we are setting pie data set
        val data = PieData(dataSet)
        data.setValueFormatter(PercentFormatter())
        data.setValueTextSize(15f)
        data.setValueTypeface(Typeface.DEFAULT_BOLD)
        data.setValueTextColor(Color.WHITE)
        pieChart.setData(data)
    
        // undo all highlights
        pieChart.highlightValues(null)
    
        // loading chart
        pieChart.invalidate()
        //***End Pie Chart Code***//
    
    opened by bdupey 0
Releases(v3.1.0)
  • v3.1.0(Mar 20, 2019)

    About

    This mostly includes bug fixes, but with a few notable differences. The biggest change is bumping MPAndroidChart's minSdkVersion to 14. If you have a lower version, you should stop supporting it and go up to 14 as well.

    Please see the current distribution usages, as less than 1% of Android devices are running versions 15 and lower now.

    Breaking Changes

    • minSdkVersion has been bumped to 14, read the above.
    • Easing class has been simplified, old methods of getting easing functions are DEPRECATED (35c9fc937ecda0dd2eb1a7b879aa869a48bfad3d)
    • Chart.saveToGallery(name, quality) now saves as a PNG instead of JPG (d67ea48)

    Additions

    • Upgraded project to androidX, maven upgraded to 2.1, gradle upgraded to 4.6, android gradle to 3.2.1, android build tools to 28.0.3
    • Example project has been refreshed (d67ea481af1e8528c617dfd404d0c7827b0134b2, 5030b36c86cfa2d076bb6b86fa8fcb37ce58557f)
    • Grid lines can be drawn behind or infront of data (c97b8d531d5584b767d0587805c1c95018cf92d6)
    • Can use pie slice color for value line color (1e6e58d2c026be332d6756b04d85b33cd3d36c2b)
    • BarChart supports gradient colored bars (e4ba3cdc20555b5f7cd793e614ee13406a7605ec)

    Fixes

    • Zoom animations fixed (6c54f0b0a91ca87fe39dd63d9095e4f55d6c59ff)
    • Many rendering bugs fixed (43ae497ecf7427587687945496c6a70e65f01fcb, aee6058dbb74f4eb1aae8e88c7562d28a91e1e1c, 92c14db5b4de4efd43c9fd74361886b92111ca9f, 89436221db3d83991f9ecd830f871d4ce7da47a4)
    • Copying data sets fixed (7abc9cd6696f78c77068ffc278793594b33497fe)
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0-alpha(Oct 29, 2018)

    Pre-Release Disclaimer

    This is a pre-release, which means it's not fully tested. However, many bugs have still been fixed and I highly recommend that you update anyway to get those latest changes. Please open an issue if you are still running into issues with this release so they can be patched up for the final 3.1 release!

    About

    This mostly includes bug fixes, but with a few notable differences. The biggest change is bumping MPAndroidChart's minSdkVersion to 14. If you have a lower version, you should stop supporting it and go up to 14 as well.

    Please see the current distribution usages, as less than 1% of Android devices are running versions 15 and lower now.

    Breaking Changes

    • minSdkVersion has been bumped to 14, read the above.
    • Easing class has been simplified, old methods of getting easing functions are DEPRECATED (35c9fc937ecda0dd2eb1a7b879aa869a48bfad3d)
    • Chart.saveToGallery(name, quality) now saves as a PNG instead of JPG (d67ea48)

    Additions

    • Upgraded project to androidX, maven upgraded to 2.1, gradle upgraded to 4.6, android gradle to 3.2.1, android build tools to 28.0.3
    • Example project has been refreshed (d67ea481af1e8528c617dfd404d0c7827b0134b2, 5030b36c86cfa2d076bb6b86fa8fcb37ce58557f)
    • Grid lines can be drawn behind or infront of data (c97b8d531d5584b767d0587805c1c95018cf92d6)
    • Can use pie slice color for value line color (1e6e58d2c026be332d6756b04d85b33cd3d36c2b)
    • BarChart supports gradient colored bars (e4ba3cdc20555b5f7cd793e614ee13406a7605ec)

    Fixes

    • Zoom animations fixed (6c54f0b0a91ca87fe39dd63d9095e4f55d6c59ff)
    • Many rendering bugs fixed (43ae497ecf7427587687945496c6a70e65f01fcb, aee6058dbb74f4eb1aae8e88c7562d28a91e1e1c, 92c14db5b4de4efd43c9fd74361886b92111ca9f, 89436221db3d83991f9ecd830f871d4ce7da47a4)
    • Copying data sets fixed (7abc9cd6696f78c77068ffc278793594b33497fe)
    Source code(tar.gz)
    Source code(zip)
  • v3.0.3(Nov 29, 2017)

  • v3.0.2(Mar 23, 2017)

  • v3.0.1(Nov 17, 2016)

  • v3.0.0(Oct 19, 2016)

    This is a major release, with a few breaking changes. So please pay attention.

    Updates:

    • The Integer x-index is dead. Intoducing: x-values (float). Each entry now has an x and a y.
    • Pie/radar charts do not have a concept of X index anymore
    • Unified XAxis/YAxis features and experience.
    • Unified formatter interfaces for axes.
    • Major refactoring of the Highlight mechanism.
    • Refactored marker mechanism
    • Refactored legend entry mechanism
    • Each dataset can now set its own legend form/size/etc.
    • More demos
    • Many minor bug fixes and improvements

    Breaking changes / how to migrate:

    • All dataset constructors have changed - they do not take an array of x-indices anymore.
    • All entry constructors have changed - they take in an X and a Y.
    • Pie and Radar chart entries now have their own classes. So exchange the Entry classes withPieEntry/RadarEntry
    • If you have any old startAtZeroEnabled calls - these have been deprecated for a long time. Replace them with axisMinimum.
    • In general, all functions that accepted x-indices before, now accept an x-value, so you might have to adjust the names a little bit.
    • Where OnChartValueSelectedListener is implemented, update the onValueSelected interface
    • Replace drawSliceTextEnabled with drawEntryLabelsEnabled
    • If you have a custom scatter shape - implement an IShapeRenderer, and put your rendering code in there
    • If you have a custom marker - consider subclassing MarkerView/MarkerImage or implementing IMarker. There are more options than before now...
    • If you have used barSpace before, move to using barWidth
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-beta1(Jul 2, 2016)

  • v3.0.0-beta(Jul 1, 2016)

    • Elimination of the "x-index" concept (each Entry now has a float x- and y-coordinate)
    • Change of the Entry constructor from Entry(float y, int xIndex) to Entry(float x, float y)
    • XAxis and YAxis concept is now similar (XAxis no longer represented by Strings)
    • Separation of the Realm.io support to a separate repository
    • Bugfixes and stability improvement
    • Many more...

    Currently, the documentation is not up to date and still refers to versions prior to 3.0 - please have a look a the example project to figure out how the new API works. An update of the docs will follow soon.

    Please also note that this is a "beta" release that might contain bugs that require fixing. A stable release 3.0 will be out within the next few weeks. If you are certain that you discovered a new issue with this new version, please let me know.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.5(May 27, 2016)

    • New: Horizontal cubic bezier lines for Line chart (through mode property)
    • New: Allow transparent color in circle hole color (Line chart)
    • New: circleHoleRadius property for more control over line chart circles
    • New: PieChart values outside of chart (connected with lines)
    • New: highlightFullBar for highlighting all values on an x-index at once
    • New: Allow setting xVals on existing Data objects
    • New: Allow bubble sizes to not be normalized against the dataset max
    • New: Added material color template
    • New: Flag to control whether we draw a limit line's labels
    • New: Exploded the Legend-Position enum to support more combinations
    • New: Allow drawing borders for bars in a Bar chart
    • Improved: Highlighting when multiple values on x-index present (bubble chart, combined chart)
    • Fixed: We are now taking into account the extra offsets for Pie/Radar chart view
    • Fixes regarding MarkerView
    • Improvements to Demo, now keeping dataset styling when changin dataset size
    • General bugfixes
    Source code(tar.gz)
    Source code(zip)
  • v2.2.4(Mar 31, 2016)

  • v2.2.3(Feb 28, 2016)

  • v2.2.2(Feb 10, 2016)

    • Support for setting different colors for value-text
    • Realm.io support related bugfixes
    • Introducing a zero-line, which can be configured separately from the grid lines of the YAxis
    • Minor other bugfixes
    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Jan 18, 2016)

    • Plotting data directly from Realm.io mobile data base
    • Realm.io tutorial
    • Introducing DataSet interfaces (e.g. ILineDataSet) for creating custom DataSets
    • Bugfixing in HorizontalBarChart
    • Bugfixing concerning stacked-bars
    • Rotated XAxis labels fixes
    • General bugfixes
    Source code(tar.gz)
    Source code(zip)
  • v2.1.6(Nov 2, 2015)

  • v2.1.5(Oct 11, 2015)

  • v2.1.4(Sep 20, 2015)

    • PieChart and HorizontalBarChart now support MarkerView
    • Dashed highlight-lines now possible
    • Introducing FillFormatter for individual LineDataSets
    • Introducing XAxisValueFormatter for custom XAxis label formatting
    • Introducing YAxisValueFormatter for custom YAxis label formatting
    • Formatter package name changed (from utils to formatter)
    • Documentation wiki improvements
    • General improvements
    • General bugfixes
    Source code(tar.gz)
    Source code(zip)
    mpandroidchartlibrary-2-1-4.jar(497.55 KB)
  • v2.1.3(Jul 31, 2015)

  • v2.1.2(Jul 24, 2015)

  • v2.1.1(Jul 20, 2015)

  • v2.1.0(May 5, 2015)

  • v2.0.9(Apr 7, 2015)

  • v2.0.8(Mar 13, 2015)

  • v2.0.7(Mar 1, 2015)

  • v2.0.2(Feb 28, 2015)

  • v2.0.1(Feb 27, 2015)

  • v2.0.0(Feb 21, 2015)

    What's new:

    • Dual YAxis (you can now choose which axis you want your DataSet to plot against, either LEFT or RIGHT)
    • CombinedChart (bar-, line-, scatter- and candle-data can now be displayed together in one chart)
    • Removed nineoldandroids-library
    • and many more...

    Not working yet:

    • HorizontalBarChart
    • Grouped BarChart highlighting
    • CombinedChart highlighting
    • lot's of other stuff :-)

    The ReadMe.md documentation is currently outdated. Please refer to the example-project.

    Please note that this is only a pre-release and absolutely not bug free and feature complete. Let me know what you think and inform me about bugs / issues.

    Source code(tar.gz)
    Source code(zip)
    mpchartlibrary-2-0-0-beta.jar(1.10 MB)
  • v1.7.4(Nov 18, 2014)

  • v1.7.3(Oct 30, 2014)

  • v1.7.2(Oct 22, 2014)

  • v1.7.1(Oct 17, 2014)

Owner
Philipp Jahoda
Passionate developer. Startup guy. Tech lover.
Philipp Jahoda
Open-source native Android graph/chart framework includes line chart,stick chart,candlestick chart,pie chart,spider-web chart etc.

Welcome to Android-Charts Welcome to Android-Charts project page on github.com. We just moved from Google Code. Android-Charts is an open-source andro

limc.cn 813 Dec 20, 2022
A powerful ๐Ÿš€ Android range bar chart library as well as scaling, panning and animations.

RangeBarChart โšก Range bar chart library for Android using MPAndroidChart โšก There were no charts in MPAndroidChart to show ranges. We were forced to sh

Ted Park 8 Nov 24, 2022
Charts/graphs library for Android compatible with API 8+, several chart types with support for scaling, scrolling and animations

HelloCharts for Android Charting library for Android compatible with API 8+(Android 2.2). Works best when hardware acceleration is available, so API 1

Leszek Wach 7.4k Jan 6, 2023
Android library for drawing Pie charts and Donut charts with the ability to customize almost anything in it.

A Pie/Donut*/Ring chart for Android, customizable to the most extent possible. For tutorial and examples refer to the website. build.gradle[.kts] impl

Mahdi Hosseinzadeh 20 Nov 18, 2022
AnyChart Android Chart is an amazing data visualization library for easily creating interactive charts in Android apps. It runs on API 19+ (Android 4.4) and features dozens of built-in chart types.

AnyChart for Android AnyChart Android Charts is an amazing data visualization library for easily creating interactive charts in Android apps. It runs

AnyChart 2k Jan 4, 2023
Android Graph Library for creating zoomable and scrollable line and bar graphs.

Chart and Graph Library for Android Project maintainer wanted! For time reasons I can not continue to maintain GraphView. Contact me if you are intere

Jonas Gehring 2.7k Jan 5, 2023
Android Graph Library for creating zoomable and scrollable line and bar graphs.

Chart and Graph Library for Android Project maintainer wanted! For time reasons I can not continue to maintain GraphView. Contact me if you are intere

Jonas Gehring 2.7k Jan 2, 2023
Simple Line, Circle, Bar chart for Android

SimpleChart Simple Line, Circle, Bar chart for Android LineChart <com.aghajari.simplechart.LineChart android:id="@+id/line_chart" android:layo

AmirHosseinAghajari 5 Jul 28, 2022
Arc Chart View (Draw Creative Statistic Arc Charts)

ArcChartViewDemo You can use this library to draw Arc charts and show your statistics or anything you want or maybe get some ratings from user. you ca

Iman khoshabi 106 Nov 22, 2022
An Android chart and graph library

EazeGraph EazeGraph is an Android library for creating beautiful and fancy charts. Its main goal was to create a lighweight library which is easy to u

Paul Cech 1.6k Dec 23, 2022
Straiberry Charts - An awesome Chart library for android

Straiberry Charts An awesome Chart library for android Straiberry ยท Report Bug ยท Request Feature Getting Started Adding dependecies Add it in your roo

StrAIberry 30 Dec 30, 2022
Jetpack-linear-chart - A simple way to draw linear chart using Jetpack Compose

jetpack-linear-chart A simple way to draw linear chart using Jetpack Compose We

Bruno Gabriel dos Santos 8 Jan 4, 2023
BubbleTabBar is bottom navigation bar with customizable bubble like tabs

BubbleTabBar BubbleTabBar is bottom navigation bar with customizable bubble like tabs Download AIX : Download Aix License Licensed under the Apache Li

Zain Ul Hassan 7 Dec 3, 2022
โœจ A very Minimal, Sleek and Powerful Graph library for Android using Jetpack Compose

Composable-Graphs ( Jetpack Compose ) โœจ A very Minimal, Sleek and Lightweight Graph library for Android using Jetpack Compose Gradle Setup allprojects

Jai Keerthick 18 Dec 29, 2022
Library for charts in android with animations

Charts Gradle Setup Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories: allprojects {

Ayush Saini 4 Dec 30, 2022
An Elementary Chart library for Jetpack Compose

Charty : Elementary Chart library for Compose Chart Library built using Jetpack Compose and is highly customizable. Updates coming soon! Made with โค๏ธ

Himanshu Singh 491 Jan 9, 2023
Android Library to rapidly develop attractive and insightful charts in android applications.

williamchart Williamchart is an Android Library to rapidly implement attractive and insightful charts in android applications. Note: WilliamChart v3 h

Diogo Bernardino 4.9k Dec 30, 2022
Android Library to rapidly develop attractive and insightful charts in android applications.

williamchart Williamchart is an Android Library to rapidly implement attractive and insightful charts in android applications. Note: WilliamChart v3 h

Diogo Bernardino 4.8k Dec 22, 2021
An android compose library with different Graphs and Charts

plot An android compose library with different Graphs and Charts (currently supports only Line graph, more types will be added soon) Download reposito

Madrapps 106 Dec 30, 2022