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!

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
  • 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 6
  • 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
  • Different values ​​for Xaxis: MPANDROIDCHART

    Different values ​​for Xaxis: MPANDROIDCHART

    I have a horizontal chart, I use the mpandroidchart library to draw it:

    image

    I need my Xaxis top to have different data from my Xaxis bottom. Does the library support this?

    image

    my code

           `val xAxis = barChartHorizontalProduct.xAxis
            xAxis.setDrawGridLines(false)
            xAxis.granularity = 1f
            xAxis.isGranularityEnabled = true
            xAxis.position = XAxisPosition.BOTTOM
            xAxis.textSize = 8f
            xAxis.setDrawAxisLine(false)
            xAxis.xOffset = -8f
            xAxis.valueFormatter = IndexAxisValueFormatter(label)
    
    
            val test = arrayOf("test1", "test2", "test3")
            val xAxisTop = barChartHorizontalProduct.xAxis
            xAxisTop.valueFormatter = IndexAxisValueFormatter(test)
            val position = XAxisPosition.TOP
            xAxisTop.position = position`
    
    opened by Ana204 0
  • StackedBarChart rounded corners on each section

    StackedBarChart rounded corners on each section

    I am trying to achieve below like stacked bar chart.

    I can do rounded corners for the whole bar by using rounded corner renderer but I want to make rounded corner each section.

    Screenshot 2022-11-16 at 11 17 28 PM

    Thanks!

    opened by Balaji-Android 1
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
Flutter chart library contains depth charts supporting various indicators and zooming

flutter_k_chart 介绍 一个仿火币的flutter图表库包含深度图,支持各种指标及放大缩小、平移等操作 webdemo演示 Demo v0.1.0:下载 APK 演示 简单用例 1.在 pubspec.yaml 中添加依赖 本项目数据来自火币openApi,火币的接口可能需要翻墙,接口

gwh 259 Dec 30, 2022
Flutter GraphView is used to display data in graph structures. It can display Tree layout, Directed and Layered graph. Useful for Family Tree, Hierarchy View.

GraphView Get it from | Flutter GraphView is used to display data in graph structures. It can display Tree layout, Directed and Layered graph. Useful

Nabil Mosharraf 326 Jan 6, 2023
Sliver bar chart - A package that supports Bar Chart in a Flutter Sliver

Sliver bar chart - A package that supports Bar Chart in a Flutter Sliver. This Package allows us to add Bar Chart in Sliver and sets a Bar Chart as a Header on Slivers Scroll.

MindInventory 19 Oct 11, 2022
kg_charts icon library. At present, there are only radar charts

kg_charts icon library. At present, there are only radar charts. Other types of charts may be added later

zhonghua 10 Oct 25, 2022
Elegant OHLC Candlestick and Trade Volume charts for @Flutter

flutter_candlesticks Elegant OHLC Candlestick and Trade Volume charts for Flutter Usage Install for Flutter with pub. Property Description data Requir

Trent Piercy 402 Dec 21, 2022
A simple candlestick chart for flutter. Supports smooth scroll and zoom

simple_candlestick_chart A simple candlestick chart for flutter. Supports smooth

7c00 14 Oct 17, 2022
Animated radial and pie charts for Flutter

Flutter Circular Chart A library for creating animated circular chart widgets with Flutter, inspired by Zero to One with Flutter. Overview Create easi

Victor Choueiri 387 Dec 26, 2022
Flutter Pie chart with animation

Pie Chart This Flutter package provides a Pie Chart Widget with cool animation. Live Demo: https://apgapg.github.io/pie_chart/ ?? Try LIVE Demo Live D

Ayush P Gupta 161 Dec 24, 2022
Basic radar chart for Flutter

flutter_radar_chart Animated radar chart for Flutter inspired by The Python Graph Gallery (https://python-graph-gallery.com/radar-chart/). Follow the

Dan Panaite 44 Dec 10, 2022
Tiny charts 🤏 - Sparkline charts for fast data visualization on Flutter apps

Tiny charts ?? - Sparkline charts for fast data visualization on Flutter apps

rows 15 Dec 10, 2022
A library to draw fantastic bar charts race in Flutter

bar_chart_race The first library to draw fantastic bar charts race in Flutter Usage Let's get started add the dependencies to your app: dependencies:

Mimene Younes 6 Jun 24, 2022
A beautiful bezier line chart widget for flutter that is highly interactive and configurable.

Bezier Chart A beautiful bezier line chart widget for flutter that is highly interactive and configurable. Features Multi bezier lines Allow numbers a

Aeyrium 428 Dec 21, 2022
Animated line chart for flutter

fl_animated_linechart An animated chart library for flutter. Support for datetime axis Multiple y axis, supporting different units Highlight selection

null 51 Sep 25, 2022
Android GraphView is used to display data in graph structures.

GraphView Android GraphView is used to display data in graph structures. Overview The library can be used within RecyclerView and currently works with

Block & Block 992 Jan 6, 2023
Charts Library for Flutter, written in Dart with Flutter.

Table of Contents New in the current release Illustration of the new "iterative auto layout" feature Autolayout step 1 Autolayout step 2 Autolayout st

Milan Zimmermann 225 Dec 25, 2022
:bar_chart: [wip] Create beautiful, responsive, animated charts using a simple and intuitive API.

fcharts A work-in-progress chart library for Flutter. Until version 1.0.0 the API is subject to change drastically. Needless to say, fcharts is not pr

Keenan Thompson 323 Dec 21, 2022
Beautiful sparkline charts for Flutter

flutter_sparkline Beautiful sparkline charts for Flutter. Installation Install the latest version from pub. Quick Start Import the package, create a S

Victor Choueiri 255 Dec 21, 2022
Charts [2148⭐] - By Google Team.

Charts is a general charting library, currently enabled for the Flutter mobile UI framework. See the online gallery for supported chart types and exam

Google 2.8k Dec 31, 2022
A flutter package which makes it easier to plot different types of charts with lots of customization, made purely in dart

multi_charts It is a library that provides different types of charts to plot data points. Currently it supports only Radar Chart, but will support mor

Intkhab Ahmed 28 Nov 9, 2022