gpt4 book ai didi

android - 具有 1 个值的数组的自定义 X 标签上的时间戳

转载 作者:行者123 更新时间:2023-11-30 03:46:51 24 4
gpt4 key购买 nike

当 ArrayList 中只有一个值时,我在 aChartEngine 中遇到了 xlabels 的问题。我为折线图生成了自己的 XLabel,但是当有一个数据数组值时,我在生成的 XLabel 之上得到了一个不需要的时间戳。

我的代码:

private XYMultipleSeriesDataset getDemoDataset() {

Calendar cal = Calendar.getInstance();
Date date = new Date();

date_value = new String[list.size()];
value_value = new String[list.size()];

for(int k = 0; k < list.size(); k++){
date_value[k] = list.get(k).get(DATE);
value_value[k] = list.get(k).get(VALUE);
}


TimeSeries series = new TimeSeries("Line Graph");

for(int j=0; j < date_value.length; j++) {


series.add(formatter.stringToDate(date_value[j]), Integer.parseInt());

}

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
return dataset;
}

设置图表设置:

private void setChartSetting(XYMultipleSeriesRenderer renderer){
renderer.setXRoundedLabels(true);
renderer.setXTitle("DATES");
renderer.setYTitle(kpiname);
renderer.setApplyBackgroundColor(true);
renderer.setFitLegend(false);
renderer.setAxesColor(Color.DKGRAY);
renderer.setShowGrid(true);
renderer.setZoomEnabled(false);
renderer.setXLabels(0);
renderer.setYLabels(10);
renderer.setZoomEnabled(false, false);
renderer.setPanEnabled(false, false);





//String[] date_value = new String[list.size()];
//String[] value_value = new String[list.size()];

if(list.isEmpty() || list.size() == 0 || list == null ){
return;
}

if(name.equals(RECOVERED) || name.equals(CONVERSION)){
largest_size = (int)Double.parseDouble(value_value[0]);
}else{
if(!(value_value.length == 0)){
largest_size = Integer.parseInt(value_value[0]);
}else{
return;
}
}

//used to determine the maximum value for the y-axis
for(int x =0; x < value_value.length; x++){

if(Integer.parseInt(value_value[x]) > largest_size){
largest_size = Integer.parseInt(value_value[x]);
}
}

renderer.setYAxisMax((double)largest_size);
renderer.setYAxisMin(0);

int value_size = value_value.length;
int m = 0;
//int add = value_size/10;
int add = largest_size/10;

/*instance variables for setting the labels on the X-Axis based on weather the values in the array are
* more than 10 items or less*/


double d;
Long l;
Long l1;
double d1;

if(date_value.length <= 1){

int last = date_value.length;
int mod = 0;
//int add_mod = Math.round(last/10);
int add_mod = (int)Math.round((double)Math.round(last));

l = Long.valueOf(formatter.stringToDateReport(date_value[0]).getTime());
d = l.doubleValue();
/*tried this to see if i can remove the timestamp*/
//renderer.addXTextLabel(0.0, "");
//renderer.removeXTextLabel(0.0);
//renderer.clearXTextLabels();
renderer.addXTextLabel(d, date_value[0]);

}


else if(date_value.length < 10){


for(int i = 0; i < date_value.length; i++){

if(i >= date_value.length){
break;
}

l = Long.valueOf(formatter.stringToDateReport(date_value[i]).getTime());
d = l.doubleValue();
renderer.addXTextLabel(d, date_value[i]);

}

} else if(date_value.length >= 10){

int last = date_value.length;
//int last = 28;
//Log.d(TAG, "last is " + last);
int mod = 0;
//int add_mod = Math.round(last/10);
int add_mod = (int)Math.round((double)Math.round(last) /10); // do this to get the decimal value with a double and then round to get nearset whole with int

for(int i =0; i < date_value.length; i++){

if(mod >= date_value.length){
break;
}


l1 = Long.valueOf(formatter.stringToDateReport(date_value[mod]).getTime());
d1 = l1.doubleValue();

renderer.addXTextLabel(d1, date_value[mod]);
mod+=add_mod;
}
}

}
}

然后:

chartView = ChartFactory.getLineChartView(context, getDemoDataset(), setChartSettings(renderer));

当有多个值时,它会使用我的自定义 XLabel(格式为 MMM-yyyy)很好地绘制图表,但当 ArrayList 中只有一个值时,它会生成时间戳。

这是一张图片:

enter image description here

最佳答案

这确实是一个错误。您可以下载一个版本,包括对其功能的修复 here .

关于android - 具有 1 个值的数组的自定义 X 标签上的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14856118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com