我在我的android应用程序中使用下面的代码生成散点图但问题是在图中散点圆的半径非常小,所以很难看到。 我不知道如何增加圆的半径... 应用程序是为Galaxy Tab创建的
请帮助
public class page_twenty extends Activity
{
public static final String TYPE = "type";
int[] colors = new int[] { Color.BLUE, Color.GREEN , Color.CYAN};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.CIRCLE ,PointStyle.CIRCLE };
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
private GraphicalView mChartView;
LinearLayout chart;
String[] titles = new String[] { "", "", ""};
int length;
List<double[]> x = new ArrayList<double[]>();
List<double[]> x1 = new ArrayList<double[]>();
List<double[]> x2 = new ArrayList<double[]>();
List<double[]> values = new ArrayList<double[]>();
List<double[]> values1 = new ArrayList<double[]>();
List<double[]> values2 = new ArrayList<double[]>();
@Override
protected void onRestoreInstanceState(Bundle savedState)
{
super.onRestoreInstanceState(savedState);
renderer = buildRenderer(colors, styles);
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
}
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.twenty);
chart = (LinearLayout) findViewById(R.id.chart);
int count = 4;
length = titles.length;
Random r = new Random();
for (int i = 0; i < length; i++)
{
double[] xValues = new double[count];
double[] yValues = new double[count];
double[] xValues1 = new double[count];
double[] yValues1 = new double[count];
double[] xValues2 = new double[count];
double[] yValues2 = new double[count];
for (int k = 0; k < count; k++)
{
//xValues[k] = k + r.nextInt() % 10;
//yValues[k] = k * 2 + r.nextInt() % 10;
xValues[0] = 6;
yValues[0] = 65;
xValues[1] = 19;
yValues[1] = 70;
xValues[2] = 31;
yValues[2] = 80;
xValues[3] = 43;
yValues[3] = 90;
xValues1[0] = 6;
yValues1[0] = 60;
xValues1[1] = 19;
yValues1[1] = 65;
xValues1[2] = 31;
yValues1[2] = 60;
xValues1[3] = 43;
yValues1[3] = 70;
xValues2[0] = 6;
yValues2[0] = 62;
xValues2[1] = 19;
yValues2[1] = 67.5;
xValues2[2] = 31;
yValues2[2] = 70;
xValues2[3] = 43;
yValues2[3] = 85;
}
x.add(xValues);
values.add(yValues);
x1.add(xValues1);
values1.add(yValues1);
x2.add(xValues2);
values2.add(yValues2);
}
setChartSettings(renderer, "", "", "", 0, 50, 60, 92, Color.GRAY,Color.LTGRAY);
renderer.setXLabels(0);
renderer.setYLabels(10);
length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++)
{
((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);
}
if (mChartView != null)
{
mChartView.repaint();
}
}
protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,
String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,
int labelsColor)
{
renderer.setChartTitle(title);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
renderer.setShowLegend(false);
renderer.setLabelsTextSize(15);
}
protected XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles)
{
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
int length = colors.length;
for (int i = 0; i < length; i++)
{
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
renderer.addSeriesRenderer(r);
}
return renderer;
}
protected XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues,List<double[]> yValues,
List<double[]> xValues1,List<double[]> yValues1, List<double[]> xValues2,List<double[]> yValues2)
{
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
int length = titles.length;
for (int i = 0; i < length; i++)
{
//XYSeries series = new XYSeries(titles[i]);
XYSeries series = new XYSeries(titles[i]);
double[] xV;
double[] yV;
if (i==0)
{
xV = xValues.get(i);
yV = yValues.get(i);
}
else if (i == 1)
{
xV = xValues1.get(i);
yV = yValues1.get(i);
}
else
{
xV = xValues2.get(i);
yV = yValues2.get(i);
}
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++)
{
//series.add(xV[k], yV[k]);
series.add(xV[k], yV[k]);
//series.add(xV1[k], yV1[k]);
// series.add(xV2[k], yV2[k]);
}
dataset.addSeries(series);
}
return dataset;
}
@Override
protected void onResume()
{
super.onResume();
if (mChartView == null)
{
mChartView = ChartFactory.getScatterChartView(this, buildDataset(titles, x, values,x1, values1,x2, values2), renderer);
//mChartView = ChartFactory.getRangeBarChartView(this, buildDataset(titles, x, values,x1, values1,x2, values2), renderer,Type.DEFAULT);
chart.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
else
{
mChartView.repaint();
}
}
private void setSeriesEnabled(boolean enabled)
{
}
}
答案 0 :(得分:3)
值得一提的是,您正在使用AChartEngine绘制图表。
只需在某个地方拨打renderer.setPointSize()
。