如何在 BubbleChart 中显示 x 轴标签?
How to show x-axis labels in BubbleChart?
我正在使用 MPAndroidChart BubbleChart v3.0.2。在此版本中,我无法在 xAxis 上设置自定义标签。如何为每个栏设置 xAxis 标签。即(标签 1、标签 2 等)
如果有人在其中工作或知道如何做,请分享。
您可以通过扩展 IValueFormatter
来做到这一点。如果您想创建 Entry
到 String
标签的简单映射,您可以这样做:
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.utils.ViewPortHandler;
import java.util.Map;
public class MapValueFormatter implements IValueFormatter {
private final Map<Entry, String> labels;
public MapValueFormatter(Map<Entry, String> labels) {
this.labels = labels;
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
String label = labels.get(entry);
if (label == null) {
return "";
}
return label;
}
}
然后你可以像这样创建标签:
Map<Entry,String> labels = new HashMap<>();
for (BubbleEntry bubbleEntry : dataSet.getValues()) {
labels.put(bubbleEntry, generateRandomString());
}
dataSet.setValueFormatter(new MapValueFormatter(labels));
结果如下所示:
我相信你可以做得更好。祝你好运!
我正在使用 MPAndroidChart BubbleChart v3.0.2。在此版本中,我无法在 xAxis 上设置自定义标签。如何为每个栏设置 xAxis 标签。即(标签 1、标签 2 等)
如果有人在其中工作或知道如何做,请分享。
您可以通过扩展 IValueFormatter
来做到这一点。如果您想创建 Entry
到 String
标签的简单映射,您可以这样做:
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.utils.ViewPortHandler;
import java.util.Map;
public class MapValueFormatter implements IValueFormatter {
private final Map<Entry, String> labels;
public MapValueFormatter(Map<Entry, String> labels) {
this.labels = labels;
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
String label = labels.get(entry);
if (label == null) {
return "";
}
return label;
}
}
然后你可以像这样创建标签:
Map<Entry,String> labels = new HashMap<>();
for (BubbleEntry bubbleEntry : dataSet.getValues()) {
labels.put(bubbleEntry, generateRandomString());
}
dataSet.setValueFormatter(new MapValueFormatter(labels));
结果如下所示:
我相信你可以做得更好。祝你好运!