Android柱狀圖、餅狀圖、折線圖
1、效果圖
2、程式碼
1)compile ‘com.github.PhilJay:MPAndroidChart:v3.0.1’
2)柱狀圖
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/chart1"
android:layout_width="300dp"
android:layout_height="320dp" />
String[] mDatas = new String[] {"未籤離", "已籤離" };
PieChart mPChart = (PieChart) findViewById(R.id.piechart1);
private void initData1() {
mChart.setDrawBarShadow(false);//繪製當前展示的內容頂部陰影
mChart.setDrawValueAboveBar(true);//柱狀圖上面的數值是否在柱子上面
mChart.getDescription().setEnabled(false);//是否顯示柱狀圖詳情
mChart.setMaxVisibleValueCount(60);//Y方向的最大值.
mChart.setPinchZoom(false);//雙指縮放.
mChart.setDrawGridBackground(false);//繪製中心內容區域背景色
mChart.setTouchEnabled(false);//設定不可以觸控
// mChart.setGridBackgroundColor(R.color.color_transparent);
mChart.getXAxis().setGridLineWidth(10f);//X軸上的刻度豎線的寬
XAxis xAxis = mChart.getXAxis();//獲得x座標
xAxis.setDrawLabels(true);//是否顯示x軸上的數值
xAxis.setDrawGridLines(false);//是否顯示豎直標尺線
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//設定x座標的位置
xAxis.setTextColor(Color.TRANSPARENT);//設定x軸上值的顏色
xAxis.setGridColor(R.color.color_transparent); //X軸上的刻度豎線的顏色
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {//設定X軸上值的格式
return String.valueOf((int) value);
}
});
mChart.getAxisRight().setEnabled(false);//是否顯示最右側豎線
YAxis leftAxis = mChart.getAxisLeft();//獲得y座標
//設定y座標的位置,引數是INSIDE_CHART(Y軸座標在內部) 或 OUTSIDE_CHART(在外部(預設是這個))
leftAxis.setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART);
leftAxis.setSpaceTop(14f);///分割線的間距百分比
leftAxis.setTextColor(R.color.color_transparent);
leftAxis.setTextSize(16f);
leftAxis.setDrawGridLines(false);//是否顯示豎直標尺線
leftAxis.setAxisMinimum(0f);//設定y軸最小值
leftAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return Math.round(value) + "";
}
});
Legend l = mChart.getLegend();//得到圖例
l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);//設定圖例位置居中
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);//設定圖例位置靠右
l.setOrientation(Legend.LegendOrientation.HORIZONTAL);//設定圖例排列豎直顯示
l.setDirection(Legend.LegendDirection.LEFT_TO_RIGHT);
l.setXEntrySpace(10f);//設定圖例在x軸方向上的間距
l.setYEntrySpace(10f);//設定圖例在y軸方向上的間距
l.setForm(Legend.LegendForm.SQUARE);
l.setTextSize(12f);
l.setFormSize(16f);//設定legend的大小
l.setTextColor(Color.WHITE);
setData1(1, 50);
}
private void setData1(int count, float range) {
float start = 1f;
ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
for (int i = (int) start; i < start + count + 1; i++) {
float mult = (range + 1);
float val = (float) (Math.random() * mult);
yVals1.add(new BarEntry(i, val,mDatas[i % mDatas.length]));
}
BarDataSet set1;
if (mChart.getData() != null &&
mChart.getData().getDataSetCount() > 0) {
set1 = (BarDataSet) mChart.getData().getDataSetByIndex(0);
set1.setValues(yVals1);
mChart.getData().notifyDataChanged();
mChart.notifyDataSetChanged();
} else {
set1 = new BarDataSet(yVals1, "");
set1.setDrawIcons(false);
set1.setColors(ColorTemplate.HORIZONTALZHUCHART_COLORS);
set1.setValueTextSize(12f);
set1.setValueTextColor(Color.WHITE);
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
dataSets.add(set1);
BarData data = new BarData(dataSets);
data.setValueTextSize(10f);//設定柱狀圖上值的字型大小
data.setBarWidth(0.2f);//設定柱狀圖每個柱子的寬度
mChart.setData(data);
}
}
```
2)餅狀圖
```
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/piechart1"
android:layout_width="260dp"
android:layout_height="260dp"
></com.github.mikephil.charting.charts.PieChart>
```
```
String[] mParties = new String[] {"2棟", "3棟", "4棟", "5棟"};
LineChart mLChart = (LineChart) findViewById(R.id.linechart);
private void initData2() {
mPChart.setUsePercentValues(true);//設定餅圖使用百分比
mPChart.getDescription().setEnabled(false);//設定不顯示餅圖的詳情
mPChart.setExtraOffsets(0, 20, 5, 5);//設定圖表外,佈局內顯示的偏移量
mPChart.setDrawHoleEnabled(true); //設定餅圖中間空
mPChart.setHoleColor(ColorTemplate.getHoloBg());//設定餅圖中間空的顏色
mPChart.setTransparentCircleColor(ColorTemplate.getHoloBg());//設定透明圓的顏色
mPChart.setTransparentCircleRadius(61f);//設定透明圓的半徑
mPChart.setTransparentCircleAlpha(110);//設定透明圓的透明度
mPChart.setHoleRadius(60f); //設定中空的圓的半徑
mPChart.setDrawCenterText(false);//設定餅圖中間是否有文字
mPChart.setRotationEnabled(false);//設定餅圖是否可以旋轉
mPChart.setHighlightPerTapEnabled(true);//設定為false以防止值由敲擊姿態被突出顯示。預設值為true。
setData2(4, 100);
mPChart.animateY(0, Easing.EasingOption.EaseInOutQuad);//設定動畫速度
Legend l = mPChart.getLegend();//得到餅圖圖例
l.setVerticalAlignment(Legend.LegendVerticalAlignment.CENTER);//設定餅圖位置在中間
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);//設定餅圖位置在右邊
l.setOrientation(Legend.LegendOrientation.VERTICAL);//設定餅圖圖例豎直顯示
l.setDrawInside(false);//設定圖例在餅圖外側
l.setXEntrySpace(25f);//設定圖例在x軸方向上的間距
l.setYEntrySpace(15f);//設定圖例在y軸方向上的間距
l.setFormSize(16f);//設定legend的大小
l.setTextColor(Color.WHITE);
l.setYOffset(10f);
}
private void setData2(int count, float range) {
float mult = range;
ArrayList<PieEntry> entries = new ArrayList<PieEntry>();
for (int i = 0; i < count; i++) {
entries.add(new PieEntry((float) ((Math.random() * mult) + mult / 5),
mParties[i % mParties.length],
null));
}
PieDataSet dataSet = new PieDataSet(entries, "");
dataSet.setDrawIcons(false);
dataSet.setSliceSpace(5f);
dataSet.setIconsOffset(new MPPointF(0, 40));
dataSet.setSelectionShift(9f);
ArrayList<Integer> colors = new ArrayList<Integer>();
for (int c : ColorTemplate.MATERIAL_COLORS)
colors.add(c);
colors.add(ColorTemplate.getHoloBlue());
dataSet.setColors(colors);
PieData data = new PieData(dataSet);
data.setValueFormatter(new PercentFormatter());
data.setValueTextSize(11f);
data.setValueTextColor(Color.TRANSPARENT);
mPChart.setDrawSliceText(false);//不顯示餅圖內元素文字
mPChart.setData(data);
mPChart.highlightValues(null);
mPChart.invalidate();
}
3)折線圖
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/linechart"
android:layout_width="680dp"
android:layout_height="310dp"
></com.github.mikephil.charting.charts.LineChart>
BarChart mChart = (BarChart) findViewById(R.id.chart1);
private void initData3() {
mLChart.getDescription().setEnabled(false);
mLChart.setTouchEnabled(false);
mLChart.setDragEnabled(false);
mLChart.setScaleEnabled(false);
mLChart.setDrawGridBackground(false);
mLChart.setNoDataText("暫無折線圖資料");//如果沒有資料的時候,會顯示這個
XAxis xAxis = mLChart.getXAxis();//x軸樣式
xAxis.setTextColor(Color.WHITE);
xAxis.setDrawAxisLine(false);//是否繪製座標軸的線,即含有座標的那條線,預設是true
xAxis.setGridColor(Color.TRANSPARENT);//X軸上的刻度豎線的顏色
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setAxisLineColor(Color.TRANSPARENT);
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return Math.round(value) + "";
}
});
YAxis leftAxis = mLChart.getAxisLeft();
leftAxis.setTextColor(Color.TRANSPARENT);
leftAxis.setAxisMaximum(100f);//設定y軸的最大值
leftAxis.setAxisMinimum(0f);//設定x軸的最小值
leftAxis.setDrawAxisLine(false);//是否繪製座標軸的線,即含有座標的那條線,預設是true
// 隱藏縱橫網格線
mLChart.getXAxis().setDrawGridLines(false);
mLChart.getAxisLeft().setDrawGridLines(false);
mLChart.getAxisRight().setDrawGridLines(false);
leftAxis.setAxisLineColor(Color.TRANSPARENT);
leftAxis.setDrawZeroLine(false);
leftAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return Math.round(value) + "";
}
});
mLChart.getAxisRight().setEnabled(false);
Legend mLegend = mLChart.getLegend();
mLegend.setEnabled(false);
setData3(30, 100);
mLChart.animateX(0);
}
private void setData3(int count, float range) {
ArrayList<Entry> values = new ArrayList<Entry>();
for (int i = 0; i < count; i++) {
float val = (float) (Math.random() * range) + 3;
values.add(new Entry(i, val, null));
}
LineDataSet set1;
if (mLChart.getData() != null &&
mLChart.getData().getDataSetCount() > 0) {
set1 = (LineDataSet) mLChart.getData().getDataSetByIndex(0);
set1.setValues(values);
mLChart.getData().notifyDataChanged();
mLChart.notifyDataSetChanged();
} else {
set1 = new LineDataSet(values, "");
set1.setDrawIcons(false);
set1.setColor(Color.TRANSPARENT);
set1.setDrawCircles(false);//是否要畫折線上的圓
set1.setLineWidth(0f);//線寬度
set1.setFillAlpha(65);//透明度
set1.setValueTextSize(12f);//設定折線上值的字型大小
set1.setCubicIntensity(0.05f);//設定折線平滑度
set1.setValueTextColor(Color.WHITE);
set1.setDrawFilled(true);//折線下是否填充
set1.setFormLineWidth(0f);
set1.setFormSize(16.f);
set1.setFillDrawable(ContextCompat.getDrawable(this, R.drawable.bg_chart_orange));//設定填充的顏色
ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
dataSets.add(set1);
LineData data = new LineData(dataSets);
mLChart.setData(data);
}
}
3、更多
相關推薦
Android柱狀圖、餅狀圖、折線圖
1、效果圖 2、程式碼 1)compile ‘com.github.PhilJay:MPAndroidChart:v3.0.1’ 2)柱狀圖 <com.github.mikephil.charting.charts.BarChart
Android之玩轉MPAndroidChart讓(折線圖、柱形圖、餅狀圖、雜湊圖、雷達圖)優雅的舞動
package com.example.chenyu.mpandroidcharttest; import android.app.Fragment; import android.graphics.Color; import android.os.Bundle; import android.suppor
PHP jpgraph庫的配置及生成統計圖表:折線圖、柱狀圖、餅狀圖等
此文為轉載,僅作儲存文件使用,轉自:http://blog.csdn.net/aoshilang2249/article/details/46956163 注意:原文中提到配置php.ini中的include_path,親測不需要配置(gd2需要開啟),只需要將下載的檔案引入專案即可
echarts之柱狀圖(bar)、餅狀圖(pie)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>echartsLineTest</title>
原生js和canvas實現的 柱狀圖、餅狀圖、折線圖
轉載來自https://blog.csdn.net/u013302113/article/details/77985744 <html> <head lang="en"> </head> <body> &
echarts 外掛開發柱狀圖、折線圖、餅狀圖(具有詳細的註釋)
<div id="popInfoDriverTotal" class="popBox" style="left:50px; top:60px"> <h2 class="gytitle"><em>分析圖表</em><spa
java 生成柱狀圖、餅狀圖等圖片
package com.sinosoft.webmodule.landLibrary; import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.FileOutputSt
android開源圖表庫MPAndroidChart(曲線圖、直方圖、餅狀圖)
一個可以拖動縮放的圖表庫,包含曲線圖、直方圖、餅狀圖,其中直方圖支援3d效果。 該庫的可擴充套件性強,程式碼相對規範,最近一次更新有很大改進,如果不喜歡AChartEngine的過於複雜可以考慮在此庫的基礎上開發自己的圖表類。 linechart 填充式lineCha
WPF專案中使用柱狀圖、餅狀圖、折線圖
在開發的過程中,可能會遇到柱狀圖、餅狀圖、折線圖來更好的顯示資料,最近整理了一下,遂放出來望需要的朋友可以參考。本文僅僅是簡單顯示,如需複雜顯示效果請參考官網程式碼示例。----本文程式碼使用WPF,Silverlight類似程式碼,使用第三方wpf_visifire_v5
【Android】achartengine的柱狀圖和餅狀圖的使用
原文地址:http://www.cnblogs.com/wangcan/p/3459551.html 本文介紹了android中如何使用achartengine繪製餅圖和柱狀圖,請分別嘗試餅圖和柱狀圖。 程式碼中的註釋解釋了圖示中的各種設定的使用方法。 一.acha
JavaWeb視覺化:Web+Echarts案例:豆瓣日劇豆列電影資訊視覺化(柱狀圖、餅狀圖、折線圖)
柱狀圖案例 柱狀圖用來比較多專案的數值情況,從構成上來說,柱狀圖以座標軸上的長方形元素作為變數,以此來達到展現並比較資料情況的目的。柱狀圖形式多種多樣,以適應不同場合資料展示,常用的有如下形式: 常用配置項引數: title:標題元件,包含主標題和副標題。 t
ECharts系列:玩轉ECharts之常用圖(折線、柱狀、餅狀、散點、關係、樹)
一.背景 最近產品叫我做一些集團系列的統計圖,包括集團組織、協作、銷售、採購等方面的。作為一名後端程式設計師,於是趁此機會來研究研究這個庫。 如果你僅僅停留在用的層面,那還是蠻簡單的。 二.介紹 ECharts,縮寫來自Enterprise Charts,商業級資料圖表,它最初是為了滿足公司商業體系裡各種業務
柱形圖,餅狀圖JavaScript
column 註意 文件 label max number span item pointf <script type="text/javascript"> $(function () { $(‘#container_2‘).highcharts({
ECharts 報表事件聯動系列三:柱狀圖,餅狀圖實現聯動
餅狀圖 img and int js函數 radius func get 執行 源碼如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type
Echarts柱狀圖,餅狀圖,折線圖案例
/* * name :tuzuoquan * mail :[email protected] * date :2016/11/27 * version :1.0 * description: * CopyRight (C)
Web在jsp頁面中生成柱狀圖,折線圖,餅狀圖
一、前言 在實際開發過程中,柱狀圖,折線圖,餅狀圖在一些OA,ERP中是非常常見的功能,特別是需求方是業務型,資料分析型公司,下面的例子簡單實現了餅狀圖,柱狀圖,折線圖在jsp中生成。(ps:新手上路,不喜勿噴) 二、前期準備 1.使用的框架:s
基於SpringMVC框架使用ECharts3.0實現折線圖,柱狀圖,餅狀圖,的繪製
頁面部分:<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l
vc6.0畫走勢圖、折線圖、餅狀圖的準備工作
VC中畫這些圖,需要使用到畫圖控制元件,步驟如下: 1.下載MSCHART20.OCX ,放到C:\Windows\System32目錄下。 2.註冊控制元件。在cmd中鍵入 regsvr32 C:\Windows\System32\mschart20.ocx; 3 將控制
Java建立柱狀圖及餅狀圖
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
使用MPAndroidChart繪製多條折線圖和餅狀圖部分問題備錄
餅狀圖 餅狀圖基本使用 /** * 繪製PieChart(餅圖) * * @param entries */ private void drawPieChart(ArrayList<PieEntry> entries