由於TimeSeries AchartEngine API的構造器僅將字符串作爲參數,並且沒有其他參數要作爲scale參數傳遞。因此,如何我會用兩種不同的尺度AchartEngine:如何使用具有兩種不同比例的TimeSeries
感謝
由於TimeSeries AchartEngine API的構造器僅將字符串作爲參數,並且沒有其他參數要作爲scale參數傳遞。因此,如何我會用兩種不同的尺度AchartEngine:如何使用具有兩種不同比例的TimeSeries
感謝
我建議你不要嘗試使用TimeSeries
多尺度圖表中使用它。
你最好建立一個規則的多比例折線圖,在X軸上設置時間戳並設置你的自定義標籤。
// disable the default labels
renderer.setXLabels(0);
// add your formatted dates, several of these calls
renderer.addXTextLabel(x, "formatted date");
我想提出一個更簡單的解決方案。
您無法在TimeSeries中使用多個比例組的原因僅僅是因爲作者忘記(或不需要)添加必要的構造函數以允許您設置該系列應該屬於哪個比例組。 TimeSeries是XYSeries的子類,非常簡單(找到源here)。它所做的唯一特別的事情就是給你一個添加日期而不是雙倍的方法。事實上,在TimeSeries的add方法只是使以下調用它通過在x值作爲毫秒時間:
super.add(x.getTime(), y);
所以,最簡單的方法來完成你想做的事是使用時間圖,而是使用TimeSeries,使用XYSeries,並以毫秒爲單位傳遞日期(就像TimeSeries一樣!)。採用這種方法,您不需要混淆自定義x軸標籤。
另一種方法可能是編寫自己的XYSeries的子類。
希望將來必要的構造函數將被添加到TimeSeries中,所以這些都不是必需的。
更好的解決方案 我發現,最好是剛子類XYSeries與我自己的必要的構造以支持規模組的TimeSeries。這是因爲在TimeSeries中覆蓋的XYSeries中存在填充值。因此,使用XYSeries的時間可能會因填充值而出現問題。這裏是我正在使用的簡單子類(注意getPadding方法返回1,您需要):
private class MyTimeSeries extends XYSeries {
public MyTimeSeries(String title, int scaleNumber) {
super(title, scaleNumber);
}
public synchronized void add(Date x, double y) {
super.add(x.getTime(), y);
}
@Override
protected double getPadding(double x) {
return 1;
}
}
看起來不錯!但我想保持7個日期在我的屏幕上默認爲固定。任何建議? – sns
您必須收聽平移和縮放事件並始終更新標籤。刪除舊的並添加新的。 –
如何將平移和縮放與x軸限制關聯。我正在討論x軸的最小和最大限制。它應該在我的屏幕上從最初的date1到date7。如果我錯了,請糾正我。感謝丹的合作 – sns