Я использую диаграмму MPAndroidChart ... все в порядке, кроме оси X ... мои столбцы не выровнены должным образом на этикетках.когда я масштабирую график, столбцы появляются на его метках, но этот масштаб не тот, который я хотел, а также, когда я масштабирую метки, повторяюсь до следующего и так далее.мои данные, например, например:
age(x) weight(y)
2 90
5 100
7 200
10 300
возраст - это мои метки, и это строковый тип ... мне нужно, чтобы это была строковая метка.
это то, что я получил
это мой код в c #
//-----chart-------------
barChart = FindViewById<BarChart>(Resource.Id.barChart);
List<BarEntry> entries = new List<BarEntry>();
List<string> labelz = new List<string>();
int c = 0;
foreach(var rec in weighting_lst)
{
entries.Add(new BarEntry(c, rec.Weight));
labelz.Add(rec.Age.ToString());
c++;
}
BarDataSet dataset = new BarDataSet(entries, "وزن به گرم");
BarData data = new BarData(dataset);
var xdata = barChart.XAxis;
xdata.ValueFormatter = new MyLabelFormatter(labelz);
xdata.SetCenterAxisLabels(false);
barChart.Data = data;
barChart.SetScaleEnabled(true);
barChart.SetFitBars(true);
public class MyLabelFormatter : Java.Lang.Object, IAxisValueFormatter
{
//private string[] customLabels = new string[] { "A", "B", "C", "D", "E", "F" };
public List<string> label_lst = new List<string>();
public MyLabelFormatter(List<string> _label_lst)
{
label_lst = _label_lst;
}
public string GetFormattedValue(float value, AxisBase axis)
{
return label_lst[(int)value % label_lst.Count];
}
}
для хположение входа в бар, я просто использую целое число c, которое увеличивается на 1 в каждом цикле, так что это дает мне как 0f, 1f, 2f, ......