我有一个问题,我想在图表中制作两个图表。 这意味着一个条形图从0开始,一个图形从100开始。 换句话说,例如,一个图0~20并且在相同的垂直值中,80~100。
现在还有一个问题,我的y轴变量没有完全显示。 有没有什么办法解决这一问题? 谢谢。
这是我的代码:
public Intent execute(Context context) {
double[] minValues = new double[] { 0,0,0,0,0,0,0,0,0,0,0,0 };
double[] maxValues = new double[] { 7, 12, 24, 28, 33, 35, 37, 36, 28, 19, 11, 4 };
double[] minValues2 = new double[] { 80,70,60,30,20,10,30,40,50,60,80,90 };
double[] maxValues2 = new double[] {100, 100, 100, 100, 100, 100, 100, 100, 100,100, 100,100 };
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
RangeCategorySeries series = new RangeCategorySeries("Temperature");
RangeCategorySeries series2 = new RangeCategorySeries("Temperature2");
int length = minValues.length;
for (int k = 0; k < length; k++) {
series.add(minValues[k], maxValues[k]);
}
for (int k = 0; k < length; k++) {
series2.add(minValues[k], maxValues[k]);
}
dataset.addSeries(series.toXYSeries());
dataset.addSeries(series2.toXYSeries());
int[] colors = new int[] { Color.CYAN };
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
renderer.setOrientation(Orientation.VERTICAL);
setChartSettings(renderer, "Monthly temperature range", "", "Percentage", 0.5, 12.5,
0, 100, Color.GRAY, Color.LTGRAY);
renderer.setBarSpacing(0.5);
renderer.setXLabels(0);
renderer.setYLabels(10);
renderer.addXTextLabel(0.9, "Var1");
renderer.addXTextLabel(1.9, "Var2");
renderer.addXTextLabel(2.9, "Var3");
renderer.addXTextLabel(3.9, "Var4");
renderer.addXTextLabel(4.9, "Var5");
renderer.addXTextLabel(5.9, "Var6");
renderer.addXTextLabel(6.9, "Var7");
renderer.addXTextLabel(7.9, "Var8");
renderer.addXTextLabel(8.9, "Var9");
renderer.addXTextLabel(9.9, "Var10");
renderer.addXTextLabel(10.9, "Var11");
renderer.addXTextLabel(11.9, "Var12");
renderer.setYLabelsPadding(30);
renderer.setYLabelsAlign(Align.LEFT);
double xMin=0;
double xMax=100;
double ymin=0;
double ymax=100;
double[] limits = new double[] {xMin,xMax,ymin,ymax};
renderer.setMargins(new int[] {30, 70, 10, 0});
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setPanLimits(limits);
SimpleSeriesRenderer r = renderer.getSeriesRendererAt(0);
r.setDisplayChartValues(true);
r.setChartValuesTextSize(12);
r.setChartValuesSpacing(3);
r.setGradientEnabled(true);
r.setGradientStart(-20, Color.BLUE);
r.setGradientStop(20, Color.GREEN);
return ChartFactory.getRangeBarChartIntent(context, dataset, renderer, Type.DEFAULT,
"Temperature range");
显示错误。 有谁可以帮忙吗? 谢谢。!
答案 0 :(得分:1)
设置每个轴(0或1)的渲染元素是您想要做的:
renderer.setYTitle(cUnits,0);
renderer.setLabelsColor(Color.WHITE);
renderer.setXLabelsColor(Color.GREEN);
renderer.setYLabelsColor(0, colors[0]); <! -- left axis -->
renderer.setYLabelsColor(1, colors[1]); <! -- right axis -->
renderer.setYTitle(dunits, 1);
renderer.setYAxisAlign(Align.RIGHT, 1);
renderer.setYLabelsAlign(Align.RIGHT, 1);