У меня есть некоторые данные о запасах, которые я импортировал из Excel в модель в туманности. У меня есть визуализации для работы графика, но у меня возникают проблемы с форматированием времени по оси X должным образом. Я попытался создать массив temp x с 1 точкой данных для каждого значения координат, и я успешно создал массив дат такой же длины. Мне кажется, я должен быть в состоянии сказать Nebula использовать мой массив дат для меток на оси x, но я не могу понять, какой параметр get оси x нужно изменить. Прямо сейчас, с включенным форматом даты, он начинается 1 октября 1969 года, а затем имеет немаркированные галочки до последнего, который также гласит 1 октября 1969 года (значение по умолчанию?). Вот мой код:
//Data source
List<Book> stocks = readBooksFromCSV("COVID_DJI.csv");
for (Book b : stocks) {
System.out.println(b);
}
//Create arrays that can hold output
double[] opening;
double[] closing;
String[] time;
int len = stocks.size();
opening = new double[len];
closing = new double[len];
time = new String[len];
int j = 0;
for (Book x : stocks) {
double o_value = x.getOpen();
double c_value = x.getClose();
String d_value = x.getDate();
opening[j] = o_value;
closing[j] = c_value;
time[j] = d_value;
j++;
}
Date[] dates = new Date[len];
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
for(int i = 0; i < len; i++) {
try {
dates[i] = df.parse(time[i]);
}
catch(ParseException e) {
System.out.println("Ooof...");
}
}
//Create temp x array
double[] temp;
temp = new double[len];
for (int i = 0; i < len; i++) {
temp[i] = i;
}
//Shell window generation and lightweight system- omitted
XYGraph xyGraph = new XYGraph();
xyGraph.setTitle("DJIA PPS During COVID-19 Outbreak");
//Set Axis Bounds
double min = opening[0];
for(int i = 0; i < len; i++) {
if(opening[i] < min) {
min = opening[i];
}
}
double max = opening[0];
for(int i = 0; i < len; i++) {
if(opening[i] > max) {
max = opening[i];
}
}
double drop = ((max - min)/max) * 100;
System.out.println("Peak to trough drop: " + drop + "%");
//Set axis parameters **I think this is where I need to change a parameter
xyGraph.getPrimaryXAxis().setRange(0, len);
xyGraph.getPrimaryXAxis().setDateEnabled(true);
xyGraph.getPrimaryXAxis().setTimeUnit(Calendar.DATE);
xyGraph.getPrimaryXAxis().setFormatPattern("yyyy-MM-dd");
xyGraph.getPrimaryXAxis().setMajorGridStep(7);
xyGraph.getPrimaryYAxis().setRange(min-100,max+100);
xyGraph.getPrimaryYAxis().setFormatPattern("$00000.00");
xyGraph.getPrimaryXAxis().setTitle("Day");
xyGraph.getPrimaryYAxis().setTitle("Price Per Share");
//Plot graph
lws.setContents(xyGraph);
//Trace implementation- omitted