gpt4 book ai didi

android - AchartEngine 折线图 Xaxis Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:55:31 24 4
gpt4 key购买 nike

我在 android 上使用 achartengine 并完成了所有工作我在折线图中遇到了一个问题我提到了 xaxis 标签但它显示像 2,4,6,8,10,12 等等与我的 xaxis 标签叠加我想在 xaxis 中隐藏 2、4、6、8、10、12 个标签。如果你不明白,请看下图:

enter image description here

完整代码如下:

public class ChartExample extends Activity {
private GraphicalView mChartView;

XYMultipleSeriesRenderer renderer;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_chart);

LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout2);

String[] titles = new String[] { "spens1","2second" };
List<double[]> x = new ArrayList<double[]>();
x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });
x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });
// }
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13,
10 });
values.add(new double[] { 11, 13, 21, 10, 40, 10, 12,15, 24, 20, 15,
12 });


int[] colors = new int[] { Color.BLUE,Color.RED};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE,PointStyle.CIRCLE};

renderer = buildRenderer(colors, styles);

int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
((XYSeriesRenderer) renderer.getSeriesRendererAt(i))
.setFillPoints(true);
}

setChartSettings(renderer, "SCORE CARD VIEW", "Attetempts",
"Marks Scored", 0, 12.5, 0, 45, Color.LTGRAY, Color.LTGRAY);
renderer.setXLabels(12);
renderer.setYLabels(10);
renderer.setShowGrid(false);
renderer.setXLabelsAlign(Align.CENTER);
renderer.setYLabelsAlign(Align.CENTER);

//renderer.setZoomButtonsVisible(true);
//renderer.setPanLimits(new double[] { 0, 20, 0, 40 });
//renderer.setZoomLimits(new double[] { 0, 20, 0, 40 });
renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);
renderer.setShowLegend(false);


for(int k=0;k<12;k++)
{
renderer.addXTextLabel(k+1,"test");
}

if (mChartView == null)
{
Log.d("Oncreate ", "if (mChartView == null)");
mChartView = ChartFactory.getLineChartView(this, mDataset(titles,
x, values), renderer);
layout.addView(mChartView, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));




}
else
{
mChartView.repaint();
Log.d("Oncreate ", "if (mChartView != null)");
}
}

private void setChartSettings(XYMultipleSeriesRenderer renderer3,
String title, String xTitle, String yTitle, double xMin,
double xMax, double yMin, double yMax, int axesColor,
int labelsColor) {
// TODO Auto-generated method stub

renderer3.setChartTitle(title);
renderer3.setXTitle(xTitle);
renderer3.setYTitle(yTitle);
renderer3.setXAxisMin(xMin);
renderer3.setXAxisMax(xMax);
renderer3.setYAxisMin(yMin);
renderer3.setYAxisMax(yMax);
renderer3.setAxesColor(axesColor);
renderer3.setLabelsColor(labelsColor);
}

private XYMultipleSeriesRenderer buildRenderer(int[] colors,
PointStyle[] styles) {
// TODO Auto-generated method stub
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
setRenderer(renderer, colors, styles);
return renderer;
}

private void setRenderer(XYMultipleSeriesRenderer renderer2, int[] colors,
PointStyle[] styles) {
// TODO Auto-generated method stub
renderer2.setAxisTitleTextSize(16);
renderer2.setChartTitleTextSize(20);
renderer2.setLabelsTextSize(15);
renderer2.setLegendTextSize(15);
renderer2.setPointSize(5f);
renderer2.setMargins(new int[] { 20, 30, 15, 20 });
int length = colors.length;
for (int i = 0; i < length; i++) {
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
renderer2.addSeriesRenderer(r);
}
}

private XYMultipleSeriesDataset mDataset(String[] titles,
List<double[]> xValues, List<double[]> yValues) {
// TODO Auto-generated method stub
XYMultipleSeriesDataset dataset1 = new XYMultipleSeriesDataset();
addXYSeries(dataset1, titles, xValues, yValues, 0);
return dataset1;
}

private void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles,
List<double[]> xValues, List<double[]> yValues, int scale) {
// TODO Auto-generated method stub

int length = titles.length;
for (int i = 0; i < length; i++) {


double[] xV = xValues.get(i);
XYSeries series = new XYSeries(titles[i], scale);
double[] yV = yValues.get(i);
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}



}

}

你能帮我吗,非常感谢。

最佳答案

最后我得到了解决方案,我尝试了下面的代码:

renderer.setXLabels(0);

和这里的完整类代码:

package com.example.lockexample;

import java.util.ArrayList;
import java.util.List;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.Paint.Align;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

public class ChartExample extends Activity {
private GraphicalView mChartView;

XYMultipleSeriesRenderer renderer;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_chart);

LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout2);

String[] titles = new String[] { "spens1","2second" };
List<double[]> x = new ArrayList<double[]>();
x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });
x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });
// }
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13,
10 });
values.add(new double[] { 11, 13, 21, 10, 40, 10, 12,15, 24, 20, 15,
12 });


int[] colors = new int[] { Color.BLUE,Color.RED};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE,PointStyle.CIRCLE};

renderer = buildRenderer(colors, styles);

int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
((XYSeriesRenderer) renderer.getSeriesRendererAt(i))
.setFillPoints(true);
}

setChartSettings(renderer, "SCORE CARD VIEW", "Attetempts",
"Marks Scored", 0, 12.5, 0, 45, Color.LTGRAY, Color.LTGRAY);
//renderer.setXLabels(12);
renderer.setYLabels(10);
renderer.setXLabels(0);
renderer.setShowGrid(true);
renderer.setXLabelsAlign(Align.CENTER);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setMargins(new int[] { 25,35, 10, 15 });
//renderer.setZoomButtonsVisible(true);
//renderer.setPanLimits(new double[] { 0, 20, 0, 40 });
//renderer.setZoomLimits(new double[] { 0, 20, 0, 40 });
renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);

renderer.setMarginsColor(Color.parseColor("#EEEDED"));
renderer.setXLabelsColor(Color.BLACK);
renderer.setYLabelsColor(0,Color.BLACK);

renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.parseColor("#FBFBFC"));
//renderer.setShowLegend(false);


for(int k=0;k<12;k++)
{
renderer.addXTextLabel(k+1,"test");
}

if (mChartView == null)
{
Log.d("Oncreate ", "if (mChartView == null)");
mChartView = ChartFactory.getLineChartView(this, mDataset(titles,
x, values), renderer);
layout.addView(mChartView, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));




}
else
{
mChartView.repaint();
Log.d("Oncreate ", "if (mChartView != null)");
}
}

private void setChartSettings(XYMultipleSeriesRenderer renderer3,
String title, String xTitle, String yTitle, double xMin,
double xMax, double yMin, double yMax, int axesColor,
int labelsColor) {
// TODO Auto-generated method stub

renderer3.setChartTitle(title);
renderer3.setXTitle(xTitle);
renderer3.setYTitle(yTitle);
renderer3.setXAxisMin(xMin);
renderer3.setXAxisMax(xMax);
renderer3.setYAxisMin(yMin);
renderer3.setYAxisMax(yMax);
renderer3.setAxesColor(axesColor);
renderer3.setLabelsColor(labelsColor);

}

private XYMultipleSeriesRenderer buildRenderer(int[] colors,
PointStyle[] styles) {
// TODO Auto-generated method stub
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
setRenderer(renderer, colors, styles);
return renderer;
}

private void setRenderer(XYMultipleSeriesRenderer renderer2, int[] colors,
PointStyle[] styles) {
// TODO Auto-generated method stub
renderer2.setAxisTitleTextSize(16);
renderer2.setChartTitleTextSize(20);
renderer2.setLabelsTextSize(15);
renderer2.setLegendTextSize(15);
renderer2.setPointSize(5f);
//renderer2.setMargins(new int[] { 20, 30, 15, 20 });
renderer2.setMargins(new int[] { 25,35, 10, 15 });

int length = colors.length;
for (int i = 0; i < length; i++) {
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
renderer2.addSeriesRenderer(r);
}
}

private XYMultipleSeriesDataset mDataset(String[] titles,
List<double[]> xValues, List<double[]> yValues) {
// TODO Auto-generated method stub
XYMultipleSeriesDataset dataset1 = new XYMultipleSeriesDataset();
addXYSeries(dataset1, titles, xValues, yValues, 0);
return dataset1;
}

private void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles,
List<double[]> xValues, List<double[]> yValues, int scale) {
// TODO Auto-generated method stub

int length = titles.length;
for (int i = 0; i < length; i++) {


double[] xV = xValues.get(i);
XYSeries series = new XYSeries(titles[i], scale);
double[] yV = yValues.get(i);
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}



}

}

关于android - AchartEngine 折线图 Xaxis Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com