Java 如何基于AndroidPlot制作简单的条形图?
我已经从android的网站上找到了一些关于android绘图的例子。但我仍然无法使条形图与下图相似: 有人知道我忘记了哪一部分吗 这是我的密码:Java 如何基于AndroidPlot制作简单的条形图?,java,android,charts,render,androidplot,Java,Android,Charts,Render,Androidplot,我已经从android的网站上找到了一些关于android绘图的例子。但我仍然无法使条形图与下图相似: 有人知道我忘记了哪一部分吗 这是我的密码: private void prepareSuccessRate() { // initialize our XYPlot reference: plot = (XYPlot) findViewById(R.id.mySimpleXYPlot); formatter3 = new MyBarFormatter(Color
private void prepareSuccessRate() {
// initialize our XYPlot reference:
plot = (XYPlot) findViewById(R.id.mySimpleXYPlot);
formatter3 = new MyBarFormatter(Color.argb(200, 100, 100, 150),
Color.LTGRAY);
formatter2 = new MyBarFormatter(Color.argb(200, 50, 100, 100),
Color.YELLOW);
// add a dark, semi-transparent background to the selection label
// widget:
Paint p = new Paint();
p.setARGB(100, 0, 0, 0);
// reduce the number of range labels
plot.setRangeLowerBoundary(0, BoundaryMode.FIXED);
plot.getGraphWidget().setGridPadding(0, 10, 0, 0);
plot.setTicksPerRangeLabel(1);
plot.setTicksPerDomainLabel(1);
// setup check box listers:
series1CheckBox = (CheckBox) findViewById(R.id.s1CheckBox);
series2CheckBox = (CheckBox) findViewById(R.id.s2CheckBox);
// obtaining file calculating variables
TransfObject.prepareData();
if (TransfObject.manyXP() != 0) {
// display it on UI
ToastObject.postFastMessage("ada "+TransfObject.TotalFailedXP());
// success & failure data
series1Numbers = getSingleValueNumber(TransfObject.TotalSuccessXP());
series1aNumbers = getSingleValueNumber(TransfObject.TotalFailedXP());
series1 = new SimpleXYSeries(Arrays.asList(series1Numbers),
SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, sTitleSuccess);
series2 = new SimpleXYSeries(Arrays.asList(series1aNumbers),
SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, sTitleFailed);
series2Numbers = getManyOrderedExp(1);
// max y-value
plot.setRangeTopMax(TransfObject.manyXP());
plot.setRangeBottomMax(3);
plot.setDomainValueFormat(new GraphXLabelFormat());
updatePlot();
}
plot.setRangeLabel(sTitleNumberOfExp);
plot.setTitle("Success Rate");
plot.setDomainLabel(sDomainLabel);
}
private void updatePlot() {
// Remove all current series from each plot
Iterator<XYSeries> iterator1 = plot.getSeriesSet().iterator();
while (iterator1.hasNext()) {
XYSeries setElement = iterator1.next();
plot.removeSeries(setElement);
}
if (repType == Stats.BY_SUCCESS_RATE) {
// displaying success rate
// color
plot.addSeries(series1, formatter3);
plot.addSeries(series2, formatter2);
} else if (repType == Stats.BY_TRANSFER_SPEED) {
// displaying transfer speed
// color
plot.addSeries(series1, formatter2);
} else if (repType == Stats.BY_TRANSFER_TIME) {
// displaying transfer time
// color
plot.addSeries(series1, formatter1);
}
MyBarRenderer renderer = ((MyBarRenderer) plot
.getRenderer(MyBarRenderer.class));
renderer.setBarRenderStyle((BarRenderer.BarRenderStyle) BarRenderer.BarRenderStyle.SIDE_BY_SIDE);
renderer.setBarWidthStyle((BarRenderer.BarWidthStyle) BarRenderer.BarWidthStyle.FIXED_WIDTH);
renderer.setBarWidth(50);
plot.redraw();
}
private void preparesuccesrate(){
//初始化XYPlot引用:
plot=(XYPlot)findViewById(R.id.mySimpleXYPlot);
formatter3=新的MyBarFormatter(Color.argb(200100100150),
颜色(灰色);
formatter2=新的MyBarFormatter(Color.argb(200,50,100,100),
颜色(黄色);
//向选择标签添加深色半透明背景
//小部件:
油漆p=新油漆();
p、 setARGB(100,0,0,0);
//减少范围标签的数量
plot.setRangeLowerBoundary(0,BoundaryMode.FIXED);
getGraphWidget().setGridPadding(0,10,0,0);
plot.setTicksPerRangeLabel(1);
plot.setTicksPerDomainLabel(1);
//设置复选框列表器:
series1CheckBox=(复选框)findViewById(R.id.s1CheckBox);
series2CheckBox=(复选框)findViewById(R.id.s2CheckBox);
//获取文件计算变量
TransfObject.prepareData();
if(TransfObject.manyXP()!=0){
//在UI上显示它
ToAsObject.postFastMessage(“ada”+TransfObject.TotalFailedXP());
//成功与失败数据
series1Numbers=getSingleValueNumber(TransfObject.TotalSuccessXP());
Series1aNumber=getSingleValueNumber(TransfObject.TotalFailedXP());
series1=新的SimpleXYSeries(Arrays.asList(series1number)),
SimpleXYSeries.ArrayFormat.Y_VALS_ONLY,sTitleSuccess);
series2=新的SimpleXYSeries(Arrays.asList(series1aanumbers),
SimpleXYSeries.ArrayFormat.Y_VALS_仅限,缝合失败);
series2Numbers=getManyOrderedExp(1);
//最大y值
plot.setRangeTopMax(TransfObject.manyXP());
plot.setRangeBottomMax(3);
setDomainValueFormat(新的GraphXLabelFormat());
updatePlot();
}
plot.setRangeLabel(缝合编号Ofexp);
地块名称(“成功率”);
plot.setDomainLabel(sDomainLabel);
}
私有void updatePlot(){
//从每个绘图中删除所有当前系列
迭代器迭代器1=plot.getSeriesSet().Iterator();
while(iterator1.hasNext()){
XYSeries setElement=iterator1.next();
plot.removeSeries(setElement);
}
if(repType==Stats.BY_SUCCESS_RATE){
//显示成功率
//颜色
plot.addSeries(series1,formatter3);
plot.addSeries(series2,formatter2);
}else if(repType==统计数据按传输速度){
//显示传送速度
//颜色
plot.addSeries(系列1,格式化程序2);
}else if(repType==Stats.BY\u TRANSFER\u TIME){
//显示传输时间
//颜色
plot.addSeries(series1,formatter1);
}
MyBallenderer渲染器=((MyBallenderer)绘图
.getRenderer(mybarnderer.class));
renderer.setBarRenderStyle((BarRenderer.BarRenderStyle)BarRenderer.BarRenderStyle.SIDE_BY_SIDE);
renderer.setBarWidthStyle((BarRenderer.BarWidthStyle)BarRenderer.BarWidthStyle.FIXED_WIDTH);
1.立根宽度(50);
plot.redraw();
}