私はMPAndroidChartを使用していますが、このトピックはかなりの部分がdocsでカバーされていることを知っていますので、何か不明な点がある場合は謝りますが、私のLinechartのx軸の日付にタイムスタンプの値を設定します。MPAndroidChartのx軸の日付の書式設定
何らかの理由でgetFormattedValue()がx軸の値に対して呼び出されていないようです。私がAxisBaseをデバッグした場合、カスタムフォーマッタが設定されていないy軸の値をフォーマットするように見えるだけです。ここで
は、主にGithubのドキュメントから取られ、コードスニペットです:
LineChart chart = (LineChart) findViewById(R.id.chart);
XAxis xAxis = chart.getXAxis();
// set min timestamp to Jul 2017
HourAxisValueFormatter(Long.parseLong("1499814559"));
xAxis.setValueFormatter(new IAxisValueFormatter() {
// THIS IS NEVER INVOKED!
@Override
public String getFormattedValue(float value, AxisBase axis)
{
return new Date(Long.parseLong(""+value)).toString();
}
});
// rating is a map of timestamp to numeric value, both stored
// as strings
for (Map.Entry<String, String> rating : ratings.entrySet()) {
String timestamp = rating.getKey();
String ratingValue = rating.getValue();
entries.add(new Entry(Float.parseFloat(timestamp),
Float.parseFloat(ratingValue)));
}
// add entries to dataset
LineDataSet dataSet = new LineDataSet(entries, "Ratings");
LineData lineData = new LineData(dataSet);
chart.setData(lineData);
chart.invalidate(); // refresh'
私はライブラリのバージョン3.0.2使用しています:、ゲイリーを事前に
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
感謝を
希望の出力/実際の出力の要求ごとに編集: 理想的には、x軸に沿って一連の日付があります.e .g。 10/7、11/8、12/8など、私が提供したEpochの値から構築されています。私は、上のコードはそれが立っている形式でそれをフォーマットされていない知っているが、ちょうどそれは私のフォーマッターが呼び出されていないという問題の要点は、すべて。
以下は、現在の出力のスクリーンショットです。x = 0行に1つの値しか表示されません(複数のy値が指定されていても、同じx = 0行それだけで最後のポイントか何かを描くん):?
上記のタイムスタンプ値をデバッグ、Float.parseFloat(タイムスタンプ)が1.50516885e^12に等しいです。たとえば、実際のタイムスタンプ値は1505168846751ですが、Floatへの解析後に丸められ、指数値が与えられます。
EDIT 2:LineDataSetに 'エントリ' として指定された値の
画面のグラブ:
EDIT 3: 問題はサイズ/フォーマットをどうするように見えます私が提供しているx値のタイムスタンプ値のうち、1.0〜20.0fの範囲の小さいfloat値に変更すると、フォーマッタが期待通りに呼び出されます。指数関数のタイムスタンプ値がフォーマットされていない理由を調べるために、コードをさらにデバッグする必要があります。
あなたのコードから必要な出力と出力を共有してください。 –
こんにちは@MehulKabaria、私はそこにいくつかの情報を提供しました、うまくいけば理にかなっています。私が詳細を提供できるかどうか教えてください。画像のサイズに対する謝罪、現時点ではズームがクラッシュしていますが、私は考えていると思います:) –
タイムスタンプからどのような日付形式が必要ですか? –