Gráfico de gráfico de gráfico de código aberto mpaandroidchart
Vou apresentar a você uma biblioteca de código aberto do ícone mpaandroidchart. Ele pode não apenas desenhar vários gráficos estatísticos em dispositivos Android, mas também arrastar e zoom os gráficos, o que é muito flexível de usar. O MPandroidChart também possui tipos de gráficos comuns: gráficos de linha, gráficos de pizza, gráficos de barras e gráficos de dispersão.
MPANDROIDCHARTLIBRARY.JAR Endereço de download do pacote:
https://github.com/philjay/mpandroidchart/releases
O seguinte implementa principalmente o seguinte gráfico de pizza:
1. Faça o download do mais recente pacote mpandroidChartlibrary-2-0-8.jar do endereço acima e copie-o para o LIBS do projeto
2. Defina o arquivo XML
3. O código lógico Java principal é o seguinte.
importJava.util.ArrayList; Importcom.github.mikephil.Charting.Charts.piechart; Importcom.github.mikephil.Charting.comPonents.legend; Importcom.github.mikephil.Charting.comPonents.legend; Importcom.github.mikephil.charting.data.entry; Importcom.github.mikephil.charting.data.piedataset; importar Android.support.v7.app.actionBarActivity; Importandroid.graphics.color; Importandroid.os.bundle; Importandroid.util.DisplayMetrics; classe pública MainActivity estende o ActionBarActivity {PrivatePiechartMChart; @Override Protected void onCreate (pacote savedInstancestate) {super.oCreate (savedInstancestate); setContentView (r.layout.activity_main); mChart = (Piechart) findViewById (r.id.spread_pie_chart); Piedatampiedata = getpiedata (4, 100); Showchart (Mchart, Mpiedata); } private void ShowChart (Piechartpiechart, Piedatapiedata) {Piechart.Setholecolortransparent (true); Piechart.Setholeradius (60f); //Radiuspiechart.setTransparentcircleradius(64f); // círculo translúcido // piechart.setholeradius (0) // círculo sólido piechart.setDescription ("Test Chart Pie"); // mChart.setDrawyValues (true); Piechart.setDrawCenterText (true); // O texto pode ser adicionado no meio do gráfico de pizza Piechart.setDrawHOLEENabled (true); Piechart.setRoTationAngle (90); // ângulo de rotação inicial // desenha o valor de descrição correspondente no slice // mChart.setDrawxValues (true); // Ative a rotação do gráfico por touch Piechart.SetRotationEnabled (true); // pode ser girado manualmente // Valores percentuais de exibição piechart.setusePercentValues (true); // Exibir porcentagens // mChart.setunit ("); // Exibir porcentagens // mChart.setunit ("); // mChart.setDrawunitsiChart (true); // Adicione um ouvinte de seleção // mChart.setOnchartValueSelectedListener (this); // mChart.setTouchenabled (false); // mchart.setonanimationListener (isto); Piechart.setCenterText ("Receita Trimestral"); // texto no meio do gráfico de pizza // Defina dados Piechart.setData (Piedata); // desfazer todos os destaques // piechart.highlightvalues (nulo); // Piechart.invalidate (); Legend mlegend = piechart.getlegend (); // Defina o gráfico de escala mlegend.setPosition (LegendPosition.right_Of_Chart); // mostra na extrema direita // mlegend.setForm (legendForm.line); // Defina a forma do gráfico de escala, o padrão é o quadrado mlegend.setxentrySpace (7f); mlegend.setyentryspace (5f); Piechart.animatexy (1000, 1000); // defina a animação // mchart.spin (2000, 0, 360); } / ** * * @param count dividido em várias partes * @param range * / privatepiedatagetpiedata (int conting, gama float) {ArrayList <String> xvalues = new ArrayList <String> (); // xVals é usado para representar o conteúdo em cada torta para (inti = 0; i <count; i ++) {xvalues.add ("trimestral" + (i + 1)); // A tela na torta é trimestral1, trimestralmente2, trimestralmente3, trimestralmente4} ArrayList <DREST> yValues = new ArrayList <Entry> (); // yVals é usado para representar os dados reais que encapsulam cada bloco de torta // dados do gráfico de pizza/** * Divida um gráfico de pizza em quatro partes, e a razão numérica das quatro partes é 14: 14: 34: 38 * float trimestralmente2 = 14; float trimestralmente3 = 34; float trimestralmente4 = 38; yValues.add (nova entrada (trimestral1, 0)); yValues.add (nova entrada (trimestral2, 1)); yvalues.add (nova entrada (trimestral3, 2)); yvalues.add (nova entrada (trimestral4, 3)); // A coleção do Y-Axis Piedatasetpiedataset = new Piedataset (YValues, "Receita Trimestral 2014"/*mostra no gráfico de escala*/); Piedataset.SetSlicesPace (0F); // Defina a distância entre os gráficos de pizza ArrayList <TEGER> colors = new ArrayList <Teger> (); // cores do gráfico de pizza.add (color.rgb (205, 205, 205)); colors.add (color.rgb (114, 188, 223)); colors.add (color.rgb (255, 123, 124)); colors.add (color.rgb (57, 135, 200)); piedataset.setColors (cores); DisplayMetrics métricas = getResources (). GetDisplayMetrics (); floatpx = 5 * (metrics.DensionDPI / 160F); Piedataset.setSelectionShift (PX); // o comprimento do estado selecionado Piedatapiedata = novo Piedata (XValues, Piedataset); returnpiedata; }} As renderizações são as seguintes:
MPAANDROIDCHART Open Chart Biblioteca Linha do gráfico
1. Copie o pacote MandroidChartlibrary-2-0-8.Jar para o Libs do projeto
2. Defina o arquivo XML
3. O código lógico Java principal é o seguinte.
packagecom.example.mpandroidlinechart; importJava.util.ArrayList; Importcom.github.mikephil.Charting.Charts.Linechart; Importcom.github.mikephil.Charting.comPonents.legend; Importcom.github.mikephil.Charting.comPonents.legend; Importcom.github.mikephil.Charting.comPonents.legendForm; Importcom.github.mikephil.charting.data.entry; Importcom.github.mikephil.charting.data.linedataSet; Importcom.github.mikephil.charting.data.linedataSet; importar Android.support.v7.app.actionBarActivity; Importandroid.graphics.color; Importandroid.os.bundle; classe pública MainActivity estende o ActionBarActivity {privatelineChartMlineChart; // tipo de letra privado mtf; @Override Protected void onCreate (pacote savedInstancestate) {super.oCreate (savedInstancestate); setContentView (r.layout.activity_main); mlineChart = (LineChart) findViewById (r.id.spread_line_chart); // mtf = typeface.createfromasset (getassets (), "opensans-bold.ttf"); Linedatamlinedata = getLinedata (36, 100); Showchart (MllineChart, Mlinedata, Color.RGB (114, 188, 223)); } // Defina o estilo de exibição Void Showchart (LineChartLinechart, Linedatalinedata, int color) {linechart.setDrawborders (false); // onde adicionar bordas ao gráfico de linhas // sem descrição text linechart.setDescription (""); // Dados Descrição // Se não houver dados, isso será exibido, semelhante ao ListView emtpyviewLinechart.setNodatatextDescription ("você precisa fornecer dados para o gráfico"); // habilitar / desativar o fundo da grade LineChart.SetDrawGridBackground (false); // se você deve exibir a tabela linechart.setGridbackgroundColor (color.white & 0x70fffff); // A cor da tabela, aqui é definir uma transparência para a cor // Ativar engrenagens de toque linechart.setTouchenabled (true); // Defina se ele pode ser tocado // Ativar dimensionamento e arrastando linechart.setDragEnabled (true); // você pode arrastar e soltar LineChart.SetScaleEnabled (true); // Você pode escalar // Se desativado, a escala pode ser feita no eixo x e y separadamente LineChart.setpinchzoom (false); // linechart.setbackgroundcolor (cor); // Definir plano de fundo // Adicionar dados linechart.setData (linedata); // Defina dados // Get the Legend (somente possível após definir dados) legend mlegend = linechart.getlegend (); // Defina o ícone da escala, que é o valor do grupo de y // modificar a legenda ... // mlegend.setPosition (legendPosition.left_of_chart); mlegend.setForm (legendForm.circle); // estilo mlegend.setFormSize (6f); // font mlegend.settextColor (color.white); // color // mlegend.settypeface (mtf); // font linechart.anmateX (2500); // Execução imediata da animação, x-eixo}/ *** Gere uma contagem de dados* @param indica quantos pontos de coordenadas existem no gráfico* @param alcance para gerar números aleatórios dentro da faixa* @return*/ privatelinedAnedatagetLinedata (int conting, faixa float) {ArrayList <> xvalues = XVALIDES = ARRAYLISTATATA (INT contagem) {ArrayList <> xvalues = XValues =; for (inti = 0; i <contagem; i ++) {// Os dados exibidos no eixo x, por padrão, o subscrito numérico é usado para exibir xvalues.add (""+i); } // Y-AXIS Data ArrayList <DREST> yValues = new ArrayList <Estess> (); for (inti = 0; i <contagem; i ++) {value float = (float) (math.random () * range)+3; yvalues.add (nova entrada (valor, i)); } // Crie um conjunto de dados e forneça um conjunto de dados do tipo // y-axis linedataSetLinedataSet = new Linedataset (yvalues, "gráfico de linha de teste" /*exibido no gráfico de escala* /); // mlinedataSet.setFillalpha (110); // mlinedataSet.setFillColor (color.red); // Use o Y-Axis definido para definir o parâmetro linedataSet.setLineWidth (1.75F); // Linha LinedataSet.setCirclesize (3F); // exibe o tamanho do círculo linedataset.setColor (color.white); // exibe a cor linedataset.setCirclecolor (color.white); // a cor do círculo linedataset.SethighlightColor (color.white); // a cor do Arraylist de linha destacado <LedataSet> linedatasets = new ArrayList <LedataSet> (); linedatasets.add (Linedataset); // Adicione os conjuntos de dados // Crie um objeto de dados com os conjuntos de dados LinedAtalinedata = new Linedata (XValues, LinedataSets); returnLinedata; }} As renderizações são as seguintes:
MPAANDROIDCHART Open Chart Biblioteca Bartle
1. Copie o pacote MandroidChartlibrary-2-0-8.Jar para o Libs do projeto
2. Defina o arquivo XML
3. O código lógico Java principal é o seguinte.
packagecom.jackie.mpandoidBarchart; importJava.util.arraylist; importCom.github.mikephil.Charting.Charts.Barchart; importCom.github.mikep hil.charting.charts.linechart; importação.github.mikephil.charting.comPONENTS.LEGEND; IMPORTCOM.Github.mikephil.Charting.comPONENTS.LEGEND Form; importCom.github.mikephil.charting.components.xaxis; importCom.github.mikephil.Charting.comPonents.Xaxis.Xaxispoition; Importcom.githu B.MikePhil.Charting.Data.Bardata; Importcom.github.mikephil.charting.data.bardataset; importCom.github.mikephil.Charting.data.barentry; importação Android.support.v7.app.actionBarActivity; importendroid.graphics.color; importendroid.os.bundle; classe pública MainActivity estende a ação de ação {PrivateBarchartMBARCART; PrivateBardatambardata; @OverrideProtected Void OnCreate (BavenDinStinStinStinStin {Super.OnCreate (SavedInstanceState); setContentView (r.layout.activity_main); mbarchart = (barchart) findviewById (r.id.spread_bar_chart); mbardata = getBardata (4, 100); ShowBarchart (MBARCHART, MBARDATA);} Void privado ShowBarchart (BarchartBarchart, Bardatabardata) {barchart.setDrawborders (false); /// onde adicionar bordas on -line gráfico barchart.setDescription (""); // Dados Descrição // Se não houver dados, isso será exibido, semelhante ao ListView em StawtViewBarCart.SetNodatatextDescription ("você precisa fornecer dados para o gráfico"); barchart.setDrawGridBackground (false); // se deve exibir a tabela color barchart.setgridbackgroundcolor (color.white & 0x70fffff); // A cor da tabela, aqui é definir uma transparência para o color barchart.setTouchenabled (true); // Defina se Barchart.SetDragEnabled (true); // seja barchart.SetScaleEnabled (true); // seja barchart.setpinchzoom (false); // // barchart.setbackgroundColor (); // Defina o fundo barchart.setDrawBarshadow (true); barchart.setData (Bardata); // Definir legenda de dados mlegend = barchart.getlegend (); // Definir icon escala mlegend.setForm (legendForm.circle); // estilo mlegend.setFormSize (6f); // font mlegend.settextColor (color.black); // color // X-AXIS Setting // xaxisXaxis = barchart.getXaxis (); // xaxis.setPosition (xaxisposition.bottom); barchart.animatex (2500); // Execução imediata da animação, eixo x} PrivateBardATAGETBARDATA (INT count, Float Range) {ArrayList <String> XValues = new ArrayList <String> (); para (inti = 0; i <count; i ++) {xvalues.add ("th" + (i + 1) + ""; Arraylist <arentry> (); for (inti = 0; i <contagem; i ++) {value float = (float) (math.random ()*número aleatório dentro do intervalo/*100*/)+3; yvalues.add (new Barentry (valor, i)); } // DataSet do y-axis BardatasetBardataset = new Bardataset (YValues, "Test Chart Pightty"); Bardataset.setColor (color.rgb (114, 188, 223)); Arraylist <Bardataset> bardatasets = novo ArrayList <Bardataset> (); Bardatasets.add (Bardataset); // Adicione os conjuntos de dados Bardatabardata = new Bardata (XValues, bardatasets); returnbardata;}} packagecom.jackie.mpandoidbarchart; importjava.util.arraylist; importCom.github.mikephil.Charting.Charts.Barcart; ing.Charts.LineChart; importCom.github.mikephil.Charting.comPONENTS.LEGEND; IMPORTCOM.Github.mikephil.Charting.comPonents.legend; importCom.github.mikephil.Charting.comPonents. .Legend.legendForm; importCom.github.mikephil.charting.components.xaxis; importCom.github.mikephil.Charting.comPonents.Xaxis.XaxisPoition; Importco m.github.mikephil.charting.data.bardata; importCom.github.mikephil.Charting.data.bardataset; importcom.github.mikephil.charting.data.barentry; importação Android.support.v7.app.actionBarActivity; importendroid.graphics.color; importendroid.os.bundle; classe pública MainActivity estende a ação de ação {PrivateBarchartMBARCART; PrivateBardatambardata; @OverrideProtected Void OnCreate (BavenDinStinStinStinStin {Super.OnCreate (SavedInstanceState); setContentView (r.layout.activity_main); mbarchart = (barchart) findviewById (r.id.spread_bar_chart); mbardata = getBardata (4, 100); ShowBarchart (MBARCHART, MBARDATA);} Void privado ShowBarchart (BarchartBarchart, Bardatabardata) {barchart.setDrawborders (false); /// onde adicionar bordas on -line gráfico barchart.setDescription (""); // Dados Descrição // Se não houver dados, isso será exibido, semelhante ao ListView em StawtViewBarCart.SetNodatatextDescription ("você precisa fornecer dados para o gráfico"); barchart.setDrawGridBackground (false); // se deve exibir a tabela color barchart.setgridbackgroundcolor (color.white & 0x70fffff); // A cor da tabela, aqui é definir uma transparência para o color barchart.setTouchenabled (true); // Defina se Barchart.SetDragEnabled (true); // seja barchart.SetScaleEnabled (true); // seja barchart.setpinchzoom (false); // // barchart.setbackgroundColor (); // Defina o fundo barchart.setDrawBarshadow (true); barchart.setData (Bardata); // Definir legenda de dados mlegend = barchart.getlegend (); // Definir icon escala mlegend.setForm (legendForm.circle); // estilo mlegend.setFormSize (6f); // font mlegend.settextColor (color.black); // color // X-AXIS Setting // xaxisXaxis = barchart.getXaxis (); // xaxis.setPosition (xaxisposition.bottom); barchart.animatex (2500); // Execução imediata da animação, eixo x} PrivateBardATAGETBARDATA (INT count, Float Range) {ArrayList <String> XValues = new ArrayList <String> (); para (inti = 0; i <count; i ++) {xvalues.add ("th" + (i + 1) + ""; Arraylist <arentry> (); for (inti = 0; i <contagem; i ++) {value float = (float) (math.random ()*número aleatório dentro do intervalo/*100*/)+3; yvalues.add (new Barentry (valor, i)); } // DataSet do y-axis BardatasetBardataset = new Bardataset (YValues, "Test Chart Pightty"); Bardataset.setColor (color.rgb (114, 188, 223)); Arraylist <Bardataset> bardatasets = novo ArrayList <Bardataset> (); Bardatasets.add (Bardataset); // Adicione os conjuntos de dados Bardatabardata = new Bardata (XValues, Bardatasets); ReturnBardata;}} As renderizações são as seguintes:
O exposto acima é a introdução ao uso da biblioteca de gráficos de código aberto MPAANDROIDCHART, que está relacionado ao gráfico de pizza, gráfico de linha e gráfico de barras. Espero que seja útil para todos.