Hier ist die tatsächliche Lösung 2017 nach der MPAndroidChart-Bibliothek geändert.
1. Add
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
Und zu Ihrer App build.gradle
dependencies {
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
}
2. In Diagrammelement zu Ihrer Vorlage build.gradle:
<com.github.mikephil.charting.charts.HorizontalBarChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3. In dem Fragmente onCreateView (oder Aktivität onCreate)
HorizontalBarChart chart = (HorizontalBarChart) view.findViewById(R.id.chart);
BarDataSet set1;
set1 = new BarDataSet(getDataSet(), "The year 2017");
set1.setColors(Color.parseColor("#F78B5D"), Color.parseColor("#FCB232"), Color.parseColor("#FDD930"), Color.parseColor("#ADD137"), Color.parseColor("#A0C25A"));
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
dataSets.add(set1);
BarData data = new BarData(dataSets);
// hide Y-axis
YAxis left = chart.getAxisLeft();
left.setDrawLabels(false);
// custom X-axis labels
String[] values = new String[] { "1 star", "2 stars", "3 stars", "4 stars", "5 stars"};
XAxis xAxis = chart.getXAxis();
xAxis.setValueFormatter(new MyXAxisValueFormatter(values));
chart.setData(data);
// custom description
Description description = new Description();
description.setText("Rating");
chart.setDescription(description);
// hide legend
chart.getLegend().setEnabled(false);
chart.animateY(1000);
chart.invalidate();
4. Schließlich mit Diagramm einiger benutzerdefinierten Klassen und Funktionen zu dem Fragmente \ Activity hinzuzufügen:
public class MyXAxisValueFormatter implements IAxisValueFormatter {
private String[] mValues;
public MyXAxisValueFormatter(String[] values) {
this.mValues = values;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
return mValues[(int) value];
}
}
private ArrayList<BarEntry> getDataSet() {
ArrayList<BarEntry> valueSet1 = new ArrayList<>();
BarEntry v1e2 = new BarEntry(1, 4341f);
valueSet1.add(v1e2);
BarEntry v1e3 = new BarEntry(2, 3121f);
valueSet1.add(v1e3);
BarEntry v1e4 = new BarEntry(3, 5521f);
valueSet1.add(v1e4);
BarEntry v1e5 = new BarEntry(4, 10421f);
valueSet1.add(v1e5);
BarEntry v1e6 = new BarEntry(5, 27934f);
valueSet1.add(v1e6);
return valueSet1;
}
5 Mein Ergebnis:
danke @ Aditya. Wie könnte ich innere Linien vor Bar Chat verstecken? – pb123
@ pb123 http://stackoverflow.com/questions/32821912/mp-android-chart-displaying-float-values-at-x-axis-of-horizontal-bar-chart –