如何在 android 中将 String 转换为 MPCharts 的 Bar 条目
How to convert String to Bar entry for MPCharts in android
在我的 android 应用程序中,我不熟悉图形并使用 MPchart 库 绘制图形。我在 X 轴和 Y 轴上使用字符串数组显示图形。
对于 x 轴,我成功创建了它,但对于 Y 轴,我需要将我的 ArrayList<String>
转换为 BarData
数组列表。我不知道如何转换它。谁能告诉我如何做到这一点?
对于X轴:
private ArrayList<String> getXAxis() {
ArrayList<String> xAxis = new ArrayList<>();
xAxis = new ArrayList<String>(Arrays.asList(bar_graph_names)); //converting string to arraylist
return xAxis;
}
对于 Y 轴绘图值:
private ArrayList<BarDataSet> getData() {
ArrayList<String> yAxis_conv = new ArrayList<>();
yAxis_conv = new ArrayList<String>(Arrays.asList(bar_graph_values));
ArrayList<BarDataSet> yAxis_Datasets=null;
ArrayList<BarEntry> yAxis = new ArrayList<>();
for(int i = 0; i < bar_graph_values.length; i++)
{
BarEntry [] barentry = new BarEntry[bar_graph_values.length];
barentry[i] = new BarEntry(Float.valueOf(yAxis_conv.get(i)),i);
}
BarDataSet barDataSet1 = new BarDataSet(yAxis_conv , "");//Error occurring line
barDataSet1.setColors(ColorTemplate.COLORFUL_COLORS);
yAxis_Datasets = new ArrayList<>();
yAxis_Datasets.add(barDataSet1);
return yAxis_Datasets;
}
BarData
对象(您给图表 View
)包含一个 List
代表 x-values 和一个或多个 BarDataSet
对象代表 y-values数据。 BarDataSet
对象有 String
个名称和 List
个 y-values。
你这个对象的结构是完全错误的。 (对于初学者 yAxis_conv
是 List<String>
,其中 BarDataSet
需要 List<BarEntry>
)。还有更多的错误,但我不会指出它们,下面只是一些工作代码:
private void setData() {
ArrayList<String> xVals = new ArrayList<String>();
ArrayList<BarEntry> yVals = new ArrayList<BarEntry>();
xVals = new ArrayList<String>(Arrays.asList(bar_graph_names));
for(int i=0; i < bar_graph_values.length; i++) {
BarEntry entry = new BarEntry(Float.valueOf(bar_graph_values[i]), i);
yVals.add(entry);
}
BarDataSet newSet = new BarDataSet(yVals, "DataSet");
BarData data = new BarData(xVals, newSet);
mChart.setData(data);
}
在我的 android 应用程序中,我不熟悉图形并使用 MPchart 库 绘制图形。我在 X 轴和 Y 轴上使用字符串数组显示图形。
对于 x 轴,我成功创建了它,但对于 Y 轴,我需要将我的 ArrayList<String>
转换为 BarData
数组列表。我不知道如何转换它。谁能告诉我如何做到这一点?
对于X轴:
private ArrayList<String> getXAxis() {
ArrayList<String> xAxis = new ArrayList<>();
xAxis = new ArrayList<String>(Arrays.asList(bar_graph_names)); //converting string to arraylist
return xAxis;
}
对于 Y 轴绘图值:
private ArrayList<BarDataSet> getData() {
ArrayList<String> yAxis_conv = new ArrayList<>();
yAxis_conv = new ArrayList<String>(Arrays.asList(bar_graph_values));
ArrayList<BarDataSet> yAxis_Datasets=null;
ArrayList<BarEntry> yAxis = new ArrayList<>();
for(int i = 0; i < bar_graph_values.length; i++)
{
BarEntry [] barentry = new BarEntry[bar_graph_values.length];
barentry[i] = new BarEntry(Float.valueOf(yAxis_conv.get(i)),i);
}
BarDataSet barDataSet1 = new BarDataSet(yAxis_conv , "");//Error occurring line
barDataSet1.setColors(ColorTemplate.COLORFUL_COLORS);
yAxis_Datasets = new ArrayList<>();
yAxis_Datasets.add(barDataSet1);
return yAxis_Datasets;
}
BarData
对象(您给图表 View
)包含一个 List
代表 x-values 和一个或多个 BarDataSet
对象代表 y-values数据。 BarDataSet
对象有 String
个名称和 List
个 y-values。
你这个对象的结构是完全错误的。 (对于初学者 yAxis_conv
是 List<String>
,其中 BarDataSet
需要 List<BarEntry>
)。还有更多的错误,但我不会指出它们,下面只是一些工作代码:
private void setData() {
ArrayList<String> xVals = new ArrayList<String>();
ArrayList<BarEntry> yVals = new ArrayList<BarEntry>();
xVals = new ArrayList<String>(Arrays.asList(bar_graph_names));
for(int i=0; i < bar_graph_values.length; i++) {
BarEntry entry = new BarEntry(Float.valueOf(bar_graph_values[i]), i);
yVals.add(entry);
}
BarDataSet newSet = new BarDataSet(yVals, "DataSet");
BarData data = new BarData(xVals, newSet);
mChart.setData(data);
}