如何显示AChartEngine条形图正确 [英] How to Display AChartEngine bar chart properly
本文介绍了如何显示AChartEngine条形图正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的 achartengine 1.0.1 (最新的),并希望证明柱状图。
这就是我想要的:
我的期望图
我迄今取得
1:1的看法:的
的缩小查看:的
问题:的
- 图的左侧和右侧部分消失在1:1。查看
- 在酒吧之间的距离是如此的高。我需要减少它。
- 在该酒吧是不恰当的文字标签之上。
- 的文本标签的颜色为白色。我试过
setLabelColor()
,但不工作。 - 文本,规模以上的酒吧小。
- XAXIS文本交流,WA等是重叠的1,2,3,我想删除1,2,3和只显示AC,WA等
你知道如何解决这些问题呢?我需要一个图形大约像我的所需的图的。先谢谢了。
编辑:的
这是我的艰难code:
公共GraphicalView getView(上下文的背景下)
{
//吧1
XYMultipleSeriesDataset数据集=新XYMultipleSeriesDataset();
XYSeries交流=新XYSeries(AC);
XYSeries PE =新XYSeries(PE);
XYSeries WA =新XYSeries(WA);
XYSeries TL =新XYSeries(TL);
XYSeries毫升=新XYSeries(ML);
XYSeries CE =新XYSeries(CE);
XYSeries重新=新XYSeries(RE);
XYSeries OT =新XYSeries(旧约);
ac.add(1,291);
pe.add(2,11);
wa.add(3,204);
tl.add(4,28);
ml.add(5,0);
ce.add(6,21);
re.add(7,51);
ot.add(8,4);
dataset.addSeries(交流);
dataset.addSeries(PE);
dataset.addSeries(WA);
dataset.addSeries(TL);
dataset.addSeries(毫升);
dataset.addSeries(CE);
dataset.addSeries(重);
dataset.addSeries(OT);
XYMultipleSeriesRenderer mRenderer =新XYMultipleSeriesRenderer();
mRenderer.setChartTitle(提交统计);
mRenderer.setXTitle(判决书code);
mRenderer.setYTitle(没有意见的。);
mRenderer.setAxesColor(Color.BLACK);
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setApplyBackgroundColor(真正的);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setMarginsColor(Color.WHITE);
mRenderer.setZoomEnabled(真正的);
mRenderer.setZoomButtonsVisible(真正的);
mRenderer.setBarSpacing(-0.5);
// mRenderer.setMargins(新INT [] {20,30,15,0});
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.addXTextLabel(1,AC);
mRenderer.addXTextLabel(2,PE);
mRenderer.addXTextLabel(3,WA);
mRenderer.addXTextLabel(4,TL);
mRenderer.addXTextLabel(5,ML);
mRenderer.addXTextLabel(6,CE);
mRenderer.addXTextLabel(7,RE);
mRenderer.addXTextLabel(8,OT);
mRenderer.setBarWidth(50);
// mRenderer.setXAxisMax(9);
mRenderer.setXAxisMin(0);
mRenderer.setYAxisMin(0);
XYSeriesRenderer渲染器=新XYSeriesRenderer();
renderer.setColor(Color.parseColor(#00AA00));
renderer.setDisplayChartValues(真正的);
XYSeriesRenderer renderer2 =新XYSeriesRenderer();
renderer2.setColor(Color.parseColor(#666600));
renderer2.setDisplayChartValues(真正的);
XYSeriesRenderer renderer3 =新XYSeriesRenderer();
renderer3.setColor(Color.parseColor(#FF0000));
renderer3.setDisplayChartValues(真正的);
XYSeriesRenderer renderer4 =新XYSeriesRenderer();
renderer4.setColor(Color.parseColor(#0000FF));
renderer4.setDisplayChartValues(真正的);
XYSeriesRenderer renderer5 =新XYSeriesRenderer();
renderer5.setColor(Color.parseColor(#6767D0));
renderer5.setDisplayChartValues(真正的);
XYSeriesRenderer renderer6 =新XYSeriesRenderer();
renderer6.setColor(Color.parseColor(#AAAA00));
renderer6.setDisplayChartValues(真正的);
XYSeriesRenderer renderer7 =新XYSeriesRenderer();
renderer7.setColor(Color.parseColor(#00AAAA));
renderer7.setDisplayChartValues(真正的);
XYSeriesRenderer renderer8 =新XYSeriesRenderer();
renderer8.setColor(Color.parseColor(#000000));
renderer8.setDisplayChartValues(真正的);
mRenderer.addSeriesRenderer(渲染);
mRenderer.addSeriesRenderer(renderer2);
mRenderer.addSeriesRenderer(renderer3);
mRenderer.addSeriesRenderer(renderer4);
mRenderer.addSeriesRenderer(renderer5);
mRenderer.addSeriesRenderer(renderer6);
mRenderer.addSeriesRenderer(renderer7);
mRenderer.addSeriesRenderer(renderer8);
返回ChartFactory.getBarChartView(背景下,数据集,mRenderer,Type.DEFAULT);
}
修改(以后将丹的建议)
我的新code:
.........
mRenderer.setChartTitle(提交统计);
mRenderer.setXTitle(判决书code);
mRenderer.setYTitle(没有意见的。);
mRenderer.setAxesColor(Color.BLACK);
mRenderer.setApplyBackgroundColor(真正的);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setMarginsColor(Color.WHITE);
mRenderer.setZoomEnabled(真正的);
mRenderer.setBarSpacing(-0.5);
mRenderer.setMargins(新INT [] {20,30,15,0});
mRenderer.setShowLegend(假);
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.addXTextLabel(1,AC);
mRenderer.addXTextLabel(2,PE);
mRenderer.addXTextLabel(3,WA);
mRenderer.addXTextLabel(4,TL);
mRenderer.addXTextLabel(5,ML);
mRenderer.addXTextLabel(6,CE);
mRenderer.addXTextLabel(7,RE);
mRenderer.addXTextLabel(8,OT);
mRenderer.setBarWidth(50);
mRenderer.setXAxisMin(-2);
mRenderer.setXAxisMax(11);
mRenderer.setYAxisMin(0);
mRenderer.setYLabelsAlign(Align.RIGHT);
mRenderer.setXLabelsColor(Color.BLACK);
mRenderer.setYLabelsColor(0,Color.BLACK);
mRenderer.setXLabels(0);
mRenderer.setChartValuesTextSize(16);
.........
现在的问题是:
-
mRenderer.setChartValuesTextSize(大小);
是行不通的,因为它是 德precated - 栏文本现在仍然很小,直到
- 的最高的酒吧在顶部 分拆
- X轴标签是不符合巴正确对准
解决方案
按照你的编号方案:
-
和
- 您可以通过设置可见区域的X轴最小值和最大值解决这个问题(最大);
- 您可以通过增加宽度或通过使用上述的方法,例如有在左,右更多的空间减少了。
- 有一个打开的问题这一点。
- 尝试
mRenderer.setXLabelsColor(彩色);
-
renderer.setChartValuesTextSize(大小);
-
mRenderer.setXLabels(0)
mRenderer.setXAxisMax; mRenderer.setXAxisMin(分钟):
编辑:
- 使用
renderer.setChartValuesTextSize(大小);
- 在同#1。
-
mRenderer.setYAxisMax(300);
- 已知问题:的http:// code .google.com / P / achartengine /问题/详细信息?ID = 312
I am using achartengine 1.0.1 (latest) and want to demonstrate a bar chart.
This is what I want:
My Desired Graph
What I achieved so far
1:1 view:
Zoom-out View:
Problems:
- the left and right portion of graph are lost in 1:1 view.
- The distance between Bar is so much high. I need to reduce it.
- The Bar is not appropriately above the text label.
- The text label color is white. I tried
setLabelColor()
but not working. - The text-size above bar is small.
- XAxis Text "AC", "WA" etc are overlapping with 1, 2, 3. I want to remove 1, 2, 3 and only show "AC", "WA" etc.
Do you know how to fix these problems? I need a graph approximately like my desired graph. Thanks in advance.
Edit:
This is my trying code:
public GraphicalView getView(Context context)
{
// Bar 1
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
XYSeries ac = new XYSeries("AC");
XYSeries pe = new XYSeries("PE");
XYSeries wa = new XYSeries("WA");
XYSeries tl = new XYSeries("TL");
XYSeries ml = new XYSeries("ML");
XYSeries ce = new XYSeries("CE");
XYSeries re = new XYSeries("RE");
XYSeries ot = new XYSeries("OT");
ac.add(1, 291);
pe.add(2, 11);
wa.add(3, 204);
tl.add(4, 28);
ml.add(5, 0);
ce.add(6, 21);
re.add(7, 51);
ot.add(8, 4);
dataset.addSeries(ac);
dataset.addSeries(pe);
dataset.addSeries(wa);
dataset.addSeries(tl);
dataset.addSeries(ml);
dataset.addSeries(ce);
dataset.addSeries(re);
dataset.addSeries(ot);
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
mRenderer.setChartTitle("Submission Statistics");
mRenderer.setXTitle("Verdict Code");
mRenderer.setYTitle("No. of Submissions");
mRenderer.setAxesColor(Color.BLACK);
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setMarginsColor(Color.WHITE);
mRenderer.setZoomEnabled(true);
mRenderer.setZoomButtonsVisible(true);
mRenderer.setBarSpacing(-0.5);
// mRenderer.setMargins(new int[] {20, 30, 15, 0});
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.addXTextLabel(1, "AC");
mRenderer.addXTextLabel(2, "PE");
mRenderer.addXTextLabel(3, "WA");
mRenderer.addXTextLabel(4, "TL");
mRenderer.addXTextLabel(5, "ML");
mRenderer.addXTextLabel(6, "CE");
mRenderer.addXTextLabel(7, "RE");
mRenderer.addXTextLabel(8, "OT");
mRenderer.setBarWidth(50);
// mRenderer.setXAxisMax(9);
mRenderer.setXAxisMin(0);
mRenderer.setYAxisMin(0);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.parseColor("#00AA00"));
renderer.setDisplayChartValues(true);
XYSeriesRenderer renderer2 = new XYSeriesRenderer();
renderer2.setColor(Color.parseColor("#666600"));
renderer2.setDisplayChartValues(true);
XYSeriesRenderer renderer3 = new XYSeriesRenderer();
renderer3.setColor(Color.parseColor("#FF0000"));
renderer3.setDisplayChartValues(true);
XYSeriesRenderer renderer4 = new XYSeriesRenderer();
renderer4.setColor(Color.parseColor("#0000FF"));
renderer4.setDisplayChartValues(true);
XYSeriesRenderer renderer5 = new XYSeriesRenderer();
renderer5.setColor(Color.parseColor("#6767D0"));
renderer5.setDisplayChartValues(true);
XYSeriesRenderer renderer6 = new XYSeriesRenderer();
renderer6.setColor(Color.parseColor("#AAAA00"));
renderer6.setDisplayChartValues(true);
XYSeriesRenderer renderer7 = new XYSeriesRenderer();
renderer7.setColor(Color.parseColor("#00AAAA"));
renderer7.setDisplayChartValues(true);
XYSeriesRenderer renderer8 = new XYSeriesRenderer();
renderer8.setColor(Color.parseColor("#000000"));
renderer8.setDisplayChartValues(true);
mRenderer.addSeriesRenderer(renderer);
mRenderer.addSeriesRenderer(renderer2);
mRenderer.addSeriesRenderer(renderer3);
mRenderer.addSeriesRenderer(renderer4);
mRenderer.addSeriesRenderer(renderer5);
mRenderer.addSeriesRenderer(renderer6);
mRenderer.addSeriesRenderer(renderer7);
mRenderer.addSeriesRenderer(renderer8);
return ChartFactory.getBarChartView(context, dataset,mRenderer, Type.DEFAULT);
}
Edit (After applying Dan's suggestion)
My new code:
.........
mRenderer.setChartTitle("Submission Statistics");
mRenderer.setXTitle("Verdict Code");
mRenderer.setYTitle("No. of Submissions");
mRenderer.setAxesColor(Color.BLACK);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setMarginsColor(Color.WHITE);
mRenderer.setZoomEnabled(true);
mRenderer.setBarSpacing(-0.5);
mRenderer.setMargins(new int[] {20, 30, 15, 0});
mRenderer.setShowLegend(false);
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.addXTextLabel(1, "AC");
mRenderer.addXTextLabel(2, "PE");
mRenderer.addXTextLabel(3, "WA");
mRenderer.addXTextLabel(4, "TL");
mRenderer.addXTextLabel(5, "ML");
mRenderer.addXTextLabel(6, "CE");
mRenderer.addXTextLabel(7, "RE");
mRenderer.addXTextLabel(8, "OT");
mRenderer.setBarWidth(50);
mRenderer.setXAxisMin(-2);
mRenderer.setXAxisMax(11);
mRenderer.setYAxisMin(0);
mRenderer.setYLabelsAlign(Align.RIGHT);
mRenderer.setXLabelsColor(Color.BLACK);
mRenderer.setYLabelsColor(0, Color.BLACK);
mRenderer.setXLabels(0);
mRenderer.setChartValuesTextSize(16);
.........
Now the problems are:
mRenderer.setChartValuesTextSize(size);
is not working as it is deprecated- Bar text remains small till now
- The highest bar is split off at the top
- X Axis Label is not in proper alignment with bar
解决方案
Following your numbering scheme:
- You can fix this by setting the X axis min and max of the visible area:
mRenderer.setXAxisMin(min);
andmRenderer.setXAxisMax(max);
- You can reduce it by increasing the width or by using the above methods such as there is more space to the left and right.
- There is an opened issue for this.
- Try
mRenderer.setXLabelsColor(color);
renderer.setChartValuesTextSize(size);
mRenderer.setXLabels(0);
Edit:
- Use
renderer.setChartValuesTextSize(size);
- Same as #1.
mRenderer.setYAxisMax(300);
- Known issue: http://code.google.com/p/achartengine/issues/detail?id=312
这篇关于如何显示AChartEngine条形图正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文