私は特にグラフのアンドロイド開発者に非常に慣れていません。現在、 AchartEngineライブラリを使用して次のグラフを作成していますが、次の問題があります。
Q-1. 左側のラベルを固定幅で表示し、残りのコンテンツを省略記号で表示したい。
Q-2縦向きから横向きに変えようとすると、次の2枚目の画像のようにグラフが表示されます。グラフに最適なレイアウトを設定するには?
Q-3 X 軸に 0 1 2 3...10 を設定するには?
このグラフに次のコードを書きました。
createLayoutMethod():
/** グラフレイアウト作成用 **/
@SuppressWarnings("deprecation")
private void createGraphLayout() {
// TODO Auto-generated method stub
/** Initialixation for Graph */
/** objext of dataset which is put on Graph*/
dataset = new XYMultipleSeriesDataset();
series = new CategorySeries("Number of Customer");
renderer = new XYSeriesRenderer();
//renderer.setColor(Color.rgb(0, 168, 240));
mRenderer = new XYMultipleSeriesRenderer();
/** Setting for Renderer **/
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setOrientation(Orientation.VERTICAL);
mRenderer.setClickEnabled(true);
mRenderer.setLegendTextSize(15);
mRenderer.setLabelsTextSize(13);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setMargins(new int[] {10,10,200,10});
mRenderer.setMarginsColor(Color.WHITE);
mRenderer.setInScroll(true);
mRenderer.setPanEnabled(true, false);
mRenderer.setScale(1);
mRenderer.setXLabelsAlign(Align.RIGHT); // alignment of label x
mRenderer.setXAxisMax(offer.length());
mRenderer.setYLabelsAlign(Align.CENTER); // alignment of label y
mRenderer.setXLabelsColor(Color.BLACK); // color of label x
mRenderer.setYLabelsColor(0, Color.BLACK); // color of label y
mRenderer.setLegendHeight(60);
mRenderer.setDisplayChartValues(true);
mRenderer.setYAxisMax(offer.length());
mRenderer.addSeriesRenderer(renderer);
}
putDataOnGraph():グラフに配置された JSON DATA の場合:
private void putDataOnGraph() {
// TODO Auto-generated method stub
try {
for(int forOffer = 0; forOffer < offer.length(); forOffer++)
{
no_cust = 0;
for(int forCust = 0; forCust < customer.length(); forCust++)
{
if(offer.getJSONObject(forOffer).getInt("id") == customer.getJSONObject(forCust).getInt("offerId") && customer.getJSONObject(forCust).getInt("status") == 1)
no_cust = no_cust+1;
}
/** Check for x-axis maximum than customer **/
maxX = no_cust > maxX ? no_cust : maxX;
mRenderer.setXLabels(0);
mRenderer.addXTextLabel(forOffer+1,offer.getJSONObject(forOffer).getString("offerTitle"));
//Log.d("msg", ""+offer.getJSONObject(forOffer).getString("offerTitle") +" : "+no_cust);
//Log.d("msg", ""+maxX);
series.add(no_cust);
}
mRenderer.setYAxisMax(maxX);
dataset.addSeries(series.toXYSeries());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
グラフのイメージ (縦):
グラフのイメージ (横):
あなたの助けをいただければ幸いです。
前もって感謝します....