<Android開源庫> MPAndroidChart Wiki(譯文)~Part 2
7. 填充數據
這一章節將講解給各式各樣的圖表設置數據的方法。
7.1 LineChart(線形圖)
想給圖表添加數據,使用如下方法:
public void setData(ChartData data) { ... }
基類ChartData囊括所有圖表在渲染過程中所需要的信息。針對不同的圖表,有不同的ChartData的子類來為對應的圖表設置數據,例如針對LineChart,你可以使用LineData。在構造函數中,你可以傳遞List
/** List constructor */
public LineData(List<ILineDataSet> sets) { ... }
/** Constructor with one or multiple ILineDataSet objects */
public LineData(ILineDataSet...) { ... }
那么,什么是DataSet?為什么你需要使用到它呢?其實很簡單。一個DataSet代表在圖表中顯示的一組數據條目。它的設計初衷是為了將同一個圖表中的不同組數據在邏輯上分離開,這樣子看上去更清晰。針對不同的圖表,存在不同的DataSet的子類(例如,LineDataSet),它們都有著自己的樣式。
比如說,你想在一個線形圖中展示兩家公司一年中四個季度的收入。這種情況下,建議創建兩個不同的LineDataSet(對應兩個公司),每個LineDataSet包含四個季度的值(一年四個季度)。當然你也可以使用一個LineDataSet,然后包含兩個公司8個季度的值。
通過以下方式創建LineDataSet:
public LineDataSet(List<Entry> entries, String label) { ... }
從構造方法可以看出,LineDataSet創建的時候需要一個List< Entry>和一個用于描述LineDataSet的String,這個String也是在圖例上顯示的標簽。 此外,此標簽可用于在包含其他LineDataSet的LineData對象中查找該LineDataSet。
Entry列表包含圖表中的所有數據。一個Entry對象,實際上就是對一個含有X值和Y值得數據條目的封裝。
public Entry(float x, float y) { ... }
綜上(兩家公司一年內季度收入的例子):
首先,創建 List< Entry>來存放數據值:
List<Entry> valsComp1 = new ArrayList<Entry>();
List<Entry> valsComp2 = new ArrayList<Entry>();
然后,使用Entry對象填寫列表。 確保條目對象包含x軸的正確索引。 (當然,這里可以使用一個循環,在這種情況下,循環的計數器變量可以是x軸上的索引)。
Entry c1e1 = new Entry(0f, 100000f); // 0 == quarter 1
valsComp1.add(c1e1);
Entry c1e2 = new Entry(1f, 140000f); // 1 == quarter 2 ...
valsComp1.add(c1e2);
// and so on ...
Entry c2e1 = new Entry(0f, 130000f); // 0 == quarter 1
valsComp2.add(c2e1);
Entry c2e2 = new Entry(1f, 115000f); // 1 == quarter 2 ...
valsComp2.add(c2e2);
//...
List< Entry>搞定之后,創建LineDataSet對象:
LineDataSet setComp1 = new LineDataSet(valsComp1, "Company 1");
setComp1.setAxisDependency(AxisDependency.LEFT);
LineDataSet setComp2 = new LineDataSet(valsComp2, "Company 2");
setComp2.setAxisDependency(AxisDependency.LEFT);
通過調用setAxisDependency(…),指定DataSet對應的軸。 最后但同樣重要的是
,創建一個IDataSets列表并構建ChartData對象:
// use the interface ILineDataSet
List<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
dataSets.add(setComp1);
dataSets.add(setComp2);
LineData data = new LineData(dataSets);
mLineChart.setData(data);
mLineChart.invalidate(); // refresh
在調用invalidate()之后,圖表將會刷新,我們提供的數據將會被繪制出來。
如果我們要為x軸添加更多的描述性值(而不是不同季度的0到3的數字),我們可以通過使用IAxisValueFormatter接口來實現。 此接口允許在XAxis上繪制的值自定義樣式。 在此示例中,格式化程序可能如下所示:
// the labels that should be drawn on the XAxis
final String[] quarters = new String[] { "Q1", "Q2", "Q3", "Q4" };
IAxisValueFormatter formatter = new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return quarters[(int) value];
}
// we don't draw numbers, so no decimal digits needed
@Override
public int getDecimalDigits() { return 0; }
};
XAxis xAxis = mLineChart.getXAxis();
xAxis.setGranularity(1f); // minimum axis-step (interval) is 1
xAxis.setValueFormatter(formatter);
關于IAxisValueFormatter 接口的更多使用方法,請查閱IAxisValueFormatter
上面示例的運行結果大致如下
給BarChart,ScatterChart,BubbleChart和CandleStickChart設置數據的方法類似于LineChart。 一個特殊情況是針對多組數據的BarChart,這個后面會進行詳細的介紹。
7.1.1 數據順序
請注意,本開源庫不支持X軸非升序的Entry組成的LineDataSet的繪制。以未排序的方式添加條目可能會導致正確的繪制,但也可能導致意外的結果。 Entry對象列表可以手動排序,也可以使用EntryXComparator:
List<Entry> entries = ...;
Collections.sort(entries, new EntryXComparator());
因為本庫使用了二分查找算法來優化性能,所以只能在排好序后的列表數據上工作。
7.2 BarChart(柱形圖)
BarChart上設置數據的方式和LineChart很相似。主要的差別是用于設置的數據對象從Entry變成了BarEntry。除此之外,BarChart還支持更多的樣式。
下面是一個給BarChart填充數據的例子:
List<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(0f, 30f));
entries.add(new BarEntry(1f, 80f));
entries.add(new BarEntry(2f, 60f));
entries.add(new BarEntry(3f, 50f));
// gap of 2f
entries.add(new BarEntry(5f, 70f));
entries.add(new BarEntry(6f, 60f));
BarDataSet set = new BarDataSet(entries, "BarDataSet");
在上面的例子中,創建了五個BarEntry對象并將其添加到BarDataSet中。 請注意,在第四個到第五個條目之間的x位置上存在“2”的差距。 在這個例子中,這個差距用于解釋BarChart中非常不錯的定位方式。 本教程末尾的截圖將顯示給定數據的結果BarChart,后面會看到。 然后下一步,創建一個BarData對象:
BarData data = new BarData(set);
data.setBarWidth(0.9f); // set custom bar width
chart.setData(data);
chart.setFitBars(true); // make the x-axis fit exactly all bars
chart.invalidate(); // refresh
在上述代碼片段中,創建了一個BarData對象。 當創建圖表的BarEntry對象時,每個柱形之間的間隔是1f(以中心為起點終點)。 通過將柱形寬度設置為0.9f,我們在每個柱形之間有效地創建一個0.1f的空間。 setFitBars(true)調用會告訴圖表調整它的x軸值的范圍,以精確地適合所有的柱形,并且在兩邊不會有柱形斷層。
創建BarData對象后,我們將其設置到圖表中并進行刷新。 運行結果如下:
7.3 Grouped BarChart(分組柱形圖)
從v3.0.0版本開始,MPAndroidChart開始支持顯式分組的柱形圖,或者用戶自定義,這種情況下用戶可以通過改變X坐標將柱形圖放在圖表的任何位置。
本節將重點介紹顯式分組的BarChart,這意味著開源庫會幫你處理柱狀圖的x位置。 示例如下:
YourData[] group1 = ...;
YourData[] group2 = ...;
List<BarEntry> entriesGroup1 = new ArrayList<>();
List<BarEntry> entriesGroup2 = new ArrayList<>();
// fill the lists
for(int i = 0; i < group1.length; i++) {
entriesGroup1.add(new BarEntry(i, group1.getValue()));
entriesGroup2.add(new BarEntry(i, group2.getValue()));
}
BarDataSet set1 = new BarDataSet(entriesGroup1, "Group 1");
BarDataSet set2 = new BarDataSet(entriesGroup2, "Group 2");
這個例子中,我們將有兩組柱狀圖,每組由一個BarDataSet表示。 在顯式分組的情況下,條目的實際x位置并不重要,它將會根據條目列表中BarEntry的位置執行分組:
float groupSpace = 0.06f;
float barSpace = 0.02f; // x2 dataset
float barWidth = 0.45f; // x2 dataset
// (0.02 + 0.45) * 2 + 0.06 = 1.00 -> interval per "group"
BarData data = new BarData(set1, set2);
data.setBarWidth(barWidth); // set the width of each bar
barChart.setData(data);
barChart.groupBars(1980f, groupSpace, barSpace); // perform the "explicit" grouping
barChart.invalidate(); // refresh
在上面的代碼片段中,BarDataSet對象被添加到BarChart。 groupBars(…)方法執行兩個BarDataSet對象的分組。 該方法采用以下參數:
public void groupBars(float fromX, float groupSpace, float barSpace) { ... }
fromX參數確定XAxis上分組條目開始的位置(在這種情況下為“1980”),groupSpace確定每組條目之間留下的空間,barSpace確定組中單個條目之間的空間。 基于這些參數,groupBars(…)方法將XAxis上的每個欄的位置更改為分組的外觀,保留各個BarEntry對象的順序。
每個組在XAxis上的“間隔”(占用空間)也由groupSpace、barSpac以及barWidth定義。
運行結果如下:
當然,分組的BarChart也可以在不使用groupBars(…)方法的情況下實現,只需通過手動的方式將各個條目直接定位到XAxis上即可。
為了確保XAxis的標簽位于上述屏幕截圖上所示的中間位置,可以使用setCenterAxisLabels(…)方法:
XAxis xAxis = chart.getXAxis();
xAxis.setCenterAxisLabels(true);
7.4 Stacked BarChart(堆積柱形圖)
堆積柱形圖的使用方式和正常柱形圖的使用方式基本相同。有點差異的是BarEntry的創建方式不太一樣,在堆疊柱形圖的使用中,需要使用到BarEntry的另一個構造方法:
public BarEntry(float x, float [] yValues) { ... }
這個構造方法允許傳入多個yValues,代表每個堆積的柱形圖的值。下面有個例子:
BarEntry stackedEntry = new BarEntry(0f, new float[] { 10, 20, 30 });
這個BarEntry由3個堆積的值組成,高度分別是10,20,30
7.5 PieChart(餅圖)
與其他圖表類型不同,PieChart以PieEntry對象的形式獲取數據。PieEntry的構造方法如下:
public PieEntry(float value, String label) { ... }
構造函數的第一個參數用于在PieChart中繪制為餅圖的實際“值”,第二個參數“label”作為第一個參數繪制的那部分餅的描述。 示例如下:
List<PieEntry> entries = new ArrayList<>();
entries.add(new PieEntry(18.5f, "Green"));
entries.add(new PieEntry(26.7f, "Yellow"));
entries.add(new PieEntry(24.0f, "Red"));
entries.add(new PieEntry(30.8f, "Blue"));
PieDataSet set = new PieDataSet(entries, "Election Results");
PieData data = new PieData(set);
pieChart.setData(data);
pieChart.invalidate(); // refresh
PieEntry對象不需要保存x位置的值,因為圖表中顯示的PieEntry對象的順序由其在條目列表中的順序確定。
添加一下樣式設置之后,上面的例子將得到下面的餅圖:
7.6 RadarChart
暫無介紹
7.7 CombinedChart
暫無介紹
8. 設置顏色
從V1.4.0版本開始,在之前版本上負責設置顏色的ColorTemplate 不再被需要。但是,一些預定義的顏色值依然保存在這個類中(例如,ColorTemplate.VORDIPLOM_COLORS),并且提供便利的方法,方便我們將顏色資源轉換成真正的顏色。通過給DataSet直接指定顏色來代替ColorTemplate,同時你可以給每個DataSet分別設計樣式。
在下面這個簡單的例子中,我們使用兩個不同的LineDataSet分別代表兩家公司一年內四個季度的收入,我們給每個公司的數據分別設置不同的顏色。
- “Company 1”使用四中不同的紅色
- “Company 2”使用四中不同的綠色
代碼如下:
LineDataSet setComp1 = new LineDataSet(valsComp1, "Company 1");
// sets colors for the dataset, resolution of the resource name to a "real" color is done internally
setComp1.setColors(new int[] { R.color.red1, R.color.red2, R.color.red3, R.color.red4 }, Context);
LineDataSet setComp2 = new LineDataSet(valsComp2, "Company 2");
setComp2.setColors(new int[] { R.color.green1, R.color.green2, R.color.green3, R.color.green4 }, Context);
除了上面這個方法外,還有很多給DataSet設置顏色的方法。具體如下:
方法 | 作用 |
---|---|
setColors(int [] colors, Context c) | 設置DataSet的顏色。當數據條目超過顏色數組的大小時,顏色將會被重復使用。你可以使用new int[] { R.color.red, R.color.green, … }來為這個方法提供顏色數組,實際上,內部是通過 getResources().getColor(…)來解析你傳入的參數的 |
setColors(int [] colors) | 設置DataSet的顏色。當數據條目超過顏色數組的大小時,顏色將會被重復使用。確保顏色是通過getResources().getColor(…)后獲取的值,也就是顏色的16進制值 |
setColors(ArrayList< Integer> colors) | 設置DataSet的顏色。當數據條目超過顏色數組的大小時,顏色將會被重復使用。確保顏色是通過getResources().getColor(…)后獲取的值,也就是顏色的16進制值 |
setColor(int color) | 給DataSet設置一個唯一的顏色值。實際上,內部也是使用一個數組,只是數組中的顏色是一樣的而已 |
ColorTemplate示例:
LineDataSet set = new LineDataSet(...);
set.setColors(ColorTemplate.VORDIPLOM_COLORS);
如果沒有給DataSet設置顏色,我們將會使用默認值。
9. 格式化數據值(IValueFormatter)
IValueFormatter接口允許用戶自定義格式化類來將圖表中的數據按照一種特定的方式格式化后再進行繪制。
你可以創建一個類,實現IValueFormatter接口,然后在getFormattedValue(…)方法中,返回你希望在圖表中繪制的內容。
public class MyValueFormatter implements IValueFormatter {
private DecimalFormat mFormat;
public MyValueFormatter() {
mFormat = new DecimalFormat("###,###,##0.0"); // use one decimal
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
// write your logic here
return mFormat.format(value) + " $"; // e.g. append a dollar-sign
}
}
然后,將格式化程序設置到ChartData或者DataSet:
// usage on whole data object
lineData.setValueFormatter(new MyValueFormatter());
// usage on individual dataset object
lineDataSet.setValueFormatter(new MyValueFormatter());
9.1 預定義的Formatter
Formatter | 介紹 |
---|---|
LargeNumberFormatter | 用于格式化大于1000的數字。”1.000”->”1k”, “1.000.000”->”1m” (million), “1.000.000.000”->”1b” (billion)等等 |
PercentFormatter | 用于顯示保留一位小數的百分數,在餅圖中用的比較多。50->50.0% |
StackedValueFormatter | 為堆積柱形圖設置的格式化程序。可以明確指出是需要繪制所有的堆積值還是只繪制頂部值 |
10. 格式化軸值(AxisValueFormatter)
v3.0.0版本中引入,用于格式化X軸和Y軸上的顯示值。
10.1 創建Formatter
軸值自定義格式只需要一步:創建實現IAxisValueFormatter 接口的自定義格式類。
如下所示,這個例子中,將軸值格式化為1為小數。
public class MyYAxisValueFormatter implements IAxisValueFormatter {
private DecimalFormat mFormat;
public MyAxisValueFormatter() {
// format values to 1 decimal digit
mFormat = new DecimalFormat("###,###,##0.0");
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
// "value" represents the position of the label on the axis (x or y)
return mFormat.format(value) + " $";
}
/** this is only needed if numbers are returned, else return 0 */
@Override
public int getDecimalDigits() { return 1; }
}
下面這個例子展示如何將一個字符串數組展示到軸上:
public class MyXAxisValueFormatter implements IAxisValueFormatter {
private String[] mValues;
public MyXAxisValueFormatter(String[] values) {
this.mValues = values;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
// "value" represents the position of the label on the axis (x or y)
return mValues[(int) value];
}
/** this is only needed if numbers are returned, else return 0 */
@Override
public int getDecimalDigits() { return 0; }
}
10.2 設置Formatter
創建完Formatter之后,設置到對應的軸:
YAxis left = chart.getAxisLeft();
left.setValueFormatter(new MyYAxisValueFormatter());
String[] values = new String[] { ... };
XAxis xAxis = chart.getXAxis();
xAxis.setValueFormatter(new MyXAxisValueFormatter(values));
現在軸上將繪制Formatter提供的數據,而非默認的數據最小值和最大值。
10.3 限制間隔
如果你使用基于數組索引的格式化程序(如上所述),將軸的最小間隔限制為“1”是有意義的:
axis.setGranularity(1f); // restrict interval to 1 (minimum)
這將防止格式化程序繪制重復的軸標簽(由軸間隔<1)引起。 只要圖表的“縮放級別”足夠高,它將停止重新計算更小的間隔。
10.4 預定義Formatter
Formatter | 介紹 |
---|---|
LargeNumberFormatter | 用于格式化大于1000的數字。”1.000”->”1k”, “1.000.000”->”1m” (million), “1.000.000.000”->”1b” (billion)等等 |
PercentFormatter | 用于顯示保留一位小數的百分數,在餅圖中用的比較多。50->50.0% |
10.5 示例Formatters
DayAxisValueFormatter,該格式化程序將提供的值轉換為日期字符串,根據比例改變字符串。
10.6 之前的Formatter
在v3.0.0之前的版本,針對X軸和Y軸分別存在兩個Formatter,具體請查閱:
11. 基本設置/樣式
本節重點介紹適用于本庫中所有圖表類型的基本設置和樣式。
11.1 刷新
方法 | 使用 |
---|---|
invalidate() | 調用該方法后,圖表將會被刷新(重繪),從而使我們的修改在圖表上生效 |
notifyDataSetChanged() | 讓圖表知道底層數據發生了變化,需要重新進行所有的必需計算(位移,圖例,最大值,最小值等等)。在加載動態數據的時候這個是很有必要的 |
11.2 日志
方法 | 使用 |
---|---|
setLogEnabled(boolean enabled) | 設置為true,打開圖表的日志輸出。打開日志對性能有影響,沒必要的話最好保持關閉 |
11.3 基本圖表樣式
下面是一些和風格相關的方法,你可以直接在圖表對象上使用:
方法 | 使用 |
---|---|
setBackgroundColor(int color) | 設置整個圖表的背景顏色,也可以通過xml文件設置 |
setDescription(String desc) | 設置在圖表右下角顯示的描述文字 |
setDescriptionColor(int color) | 設置描述文字的顏色 |
setDescriptionPosition(float x, float y) | 設置描述文字顯示的位置 |
setDescriptionTypeface(Typeface t) | 設置描述文字字體 |
setDescriptionTextSize(float size) | 設置描述文字的字體大小(px), 最小6f, 最大16f. |
setNoDataText(String text) | 設置圖表中沒有數據時顯示的文字. |
setDrawGridBackground(boolean enabled) | 設置為true之后,圖表繪制區域后面的矩形會被繪制 |
setGridBackgroundColor(int color) | 設置要繪制的網格背景的顏色。 |
setDrawBorders(boolean enabled) | 啟用/禁用繪制圖表邊框(圖表周圍的線). |
setBorderColor(int color) | 設置圖表邊框的顏色 |
setBorderWidth(float width) | 設置圖表邊框線的寬度(dp) |
setMaxVisibleValueCount(int count) | 設置圖表上最大可見繪制值標簽的數量。 這僅在啟用setDrawValues()時才會生效。 |
12. 特定圖表設置和樣式
12.1 Line-, Bar-, Scatter-, Candle- & BubbleChart(條形圖,柱形圖,散列圖,蠟燭圖和氣泡圖)
方法 | 使用 |
---|---|
setAutoScaleMinMaxEnabled(boolean enabled) | 指示是否啟用y軸上的自動縮放的標志。 如果啟用,只要視口更改,y軸就會自動調整到當前x軸范圍的最小和最大y值。 這對于顯示財務數據的圖表尤其有用。 默認值:false |
setKeepPositionOnRotation(boolean enabled) | 設置方向更改后圖表是否應保持其位置(縮放/滾動)。 默認值:false |
12.2 BarChart(柱形圖)
方法 | 使用 |
---|---|
setDrawValueAboveBar(boolean enabled) | 設置為true,所有條目的值將會繪制在條目的上方,而不是頂部的下面 |
setDrawBarShadow(boolean enabled) | 如果設置為true,則在每個條之后繪制一個指示最大值的灰色區域。 打開這個開關將會是性能下降40% |
setDrawValuesForWholeStack(boolean enabled) | 如果設置為true,則堆疊條的所有值都是單獨繪制的,而不僅僅是它們的總和. |
setDrawHighlightArrow(boolean enabled) | 設置為true后,若取值高亮,將會在每個高亮的條目上繪制一個箭頭 |
12.3 PieChart(餅圖)
方法 | 使用 |
---|---|
setDrawSliceText(boolean enabled) | 將其設置為true可將x值文本繪制到餅圖切片中 |
setUsePercentValues(boolean enabled) | 如果啟用此功能,則圖表中的值將以百分比繪制,而不是以原始值繪制。提供給ValueFormatter的值將會以百分比的形式 |
setCenterText(SpannableString text) | 設置繪制在餅圖中心的文字,過長的文字會被自動處理以免延伸到餅圖切片中。 |
setCenterTextRadiusPercent(float percent) | 設置中心文本邊界框的矩形半徑,以餅孔默認值的百分比為1.f(100%) |
setHoleRadius(float percent) | 設置餅圖中心空洞的半徑,默認是整個餅圖半徑的一半也就是50% |
setTransparentCircleRadius(float percent) | 設置餅圖中孔旁邊的透明圓的半徑,最大半徑的百分比(max =整個圖的半徑),默認值55% - >表示默認值比中心孔大5% |
setTransparentCircleColor(int color) | 設置透明圓圈的顏色 |
setTransparentCircleAlpha(int alpha) | 設置透明圓圈的透明值 |
setMaxAngle(float maxangle) | 設置用于計算餅形圓的最大角度。 360f意味著它是一個完整的PieChart,180f結果是一個半餅圖。 默認值:360f |
12.4 RadarChart(雷達圖)
方法 | 使用 |
---|---|
setSkipWebLineCount(int count) | 允許跳過來自圖表中心的網頁線。 特別有用,如果有很多行。 |
智能推薦
Android中MPAndroidChart使用Demo
由于Google提供的AChartEngine的功能強大但使用起來較為復雜,MPAndroidChart同樣能夠實現一些效果較好的直方圖,折線圖,餅圖等繪制,使用也較為簡單輕便; 介紹MPAndroidChart 主要的Api方法: setDescription(String desc) : 設置表格的描述 setDescriptionTypeface(Typeface t) :自定義表格中顯示的...
Android 圖表開源框架之MPAndroidChart PieChart扇形圖(二)
Android 圖表開源框架之MPAndroidChart PieChart扇形圖(一) Android 圖表開源框架之MPAndroidChart PieChart扇形圖,版本:3.0.1 效果圖1: 效果圖2: 一.具體實現: 1.主函數代碼: 2.布局: 3.工具類PieChartUtil 在自定義中可以修改原來的%為元或著其它單位 4.參考案例: https://github....
第三方開源庫之 MPAndroidChart
目前版本 3.1.0 GitHub 地址:https://github.com/PhilJay/MPAndroidChart 簡介 支持x,y軸縮放 支持拖拽 支持手指滑動 支持高亮顯示 支持保存圖表到文件中 支持從文件(txt)中讀取數據 預先定義顏色模板 自動生成標注 支持自定義x,y軸的顯示標簽 支持x,y軸動畫 支持x,y軸設置最大值和附加信息 支持自定義字體,顏色,背景,手勢,虛線等 使...
Android柱狀圖MPAndroidChart使用
MPAndroidChart在github上地址:https://github.com/PhilJay/MPAndroidChart 原博客連接 https://blog.csdn.net/ww897532167/article/details/74171294#3.1%20%E5%8E%BB%E6%8E%89%E5%9B%BE%E8%A1%A8%E5%A4%96%E6%A1%86%EF%BC%8...
猜你喜歡
Android 使用 MPAndroidChart 實現折線圖
Android 使用 MPAndroidChart 實現折線圖 做Android項目的時候用到了折線圖,不光折線圖,還可能遇到很多的圖表需要展示渲染,自己手畫的話那好玩了,今天使用MPAndroidChart插件來實現接入ECharts MPAndroidChart 庫 MPAndroidChart 庫地址: https://github.com/PhilJay/MPAndroidChart MP...
Android圖表 MPAndroidChart折線圖
1.介紹 MPAndroidChart GitHub地址 Demo GitHub地址 MPAndroidChart的強大之處就不在多說了,目前最新的版本是3.0.1,在新版本中很多方法都被棄用了,這個要注意一下,在網上查到的大多數資料都是關于舊版本的,今天來實現一下折線圖,把過程記錄下來,分享給大家。 效果圖: 2.引入開源庫 在項目根目錄的build.gradle文件中加入如下代碼 1 2 3 ...
Android開發:MPAndroidChart的配置和使用
前言 開發環境 安裝和配置 一個簡單的折線圖Demo 布局文件 Activity文件 效果展示 參考鏈接 前言 實驗室的項目需要做一個折線圖波形,來顯示數據。在MATLAB上,只需要一個plot函數就行了,但是在Android上,需要借助一個第三方開源庫MPAndroid來實現。本文是對MPAndroidCharts的一個學習和總結。 MPAndroidChart是一款基于Android的...
Android: MPAndroidChart 圖表框架使用筆記
資源: https://github.com/PhilJay/MPAndroidChart 文檔: https://javadoc.jitpack.io/com/github/PhilJay/MPAndroidChart/v3.1.0/javadoc/ A powerful Android chart view / graph view library, ...