2

このようにタイムチャートで日付形式を設定できます

final GraphicalView view = ChartFactory.getTimeChartView(context, dataset,
                mRenderer, "dd-MMM-yyyy");

しかし、ComninedXYChart の場合、同じことはできません。

String[] types = new String[] { TimeChart.TYPE , ScatterChart.TYPE, ScatterChart.TYPE};
final GraphicalView view = 
    ChartFactory.getCombinedXYChartView(context, dataset, mRenderer, types);

下の画像: ここに画像の説明を入力

何か案は?

4

2 に答える 2

1

CombinedXYChart の場合、カスタム ラベルを使用する必要があります。

// disable the default labels
renderer.setXLabels(0);
// add several such labels
renderer.addXTextLabel(x, "label");
于 2013-03-13T15:25:15.187 に答える
0

実際、私ははるかに良いアプローチを見つけました。トリックは、メソッド setXLabelFormat をオーバーロードされた NumberFormat と組み合わせて使用​​することです。

 SimpleDateFormat mDateFormatter = new SimpleDateFormat("d MMM");
 renderer.setXLabelFormat(new NumberFormat() {
        @Override
        public StringBuffer format(double value, StringBuffer buffer, FieldPosition field) {
            return mDateFormatter.format(value, buffer, field);
        }

        @Override
        public StringBuffer format(long value, StringBuffer buffer, FieldPosition field) {
            return mDateFormatter.format(value, buffer, field);
        }

        @Override
        public Number parse(String string, ParsePosition position) {
            return mDateFormatter.parse(string, position).getTime();
        }
    });

もちろん、メソッド setXLabelFormatがNumberFormatの代わりにFormat (すべてのフォーマットの基本クラス) を受け入れた方がはるかに良いでしょうが、それでもエレガントで非常にシンプルなソリューションだと思います。

于 2014-06-05T17:46:21.823 に答える