我有一個顯示3個酒吧的條形圖。三個酒吧以不同的寬度顯示。如何設置所有酒吧的等寬?如何使用achartengine設置條寬。我的最後一間酒吧被擠出
這是我的條形圖的快照
請任何一個建議!
任何幫助將被讚賞!
我有一個顯示3個酒吧的條形圖。三個酒吧以不同的寬度顯示。如何設置所有酒吧的等寬?如何使用achartengine設置條寬。我的最後一間酒吧被擠出
這是我的條形圖的快照
請任何一個建議!
任何幫助將被讚賞!
它看起來像你有2系列的數據。一個系列有2個項目,綠色只有一個項目。當你在該系列只有一個項目,它可能是有意義的使用來設定條寬:
renderer.setBarWidth(width);
另一個解決方案是至少有兩個項目添加到您的系列。
@SuppressLint("ParserError")
public class MainActivity extends Activity {
private GraphicalView BarChartView;
@SuppressLint("ParserError")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (BarChartView==null)
{
XYMultipleSeriesRenderer renderer = buildBarRenderer();
setChartSettings(renderer);
BarChartView = ChartFactory.getBarChartView(this, getBarDataset(), renderer, Type.DEFAULT);
LinearLayout playout = (LinearLayout) findViewById(R.id.graph2);
playout.addView(BarChartView);
;
}
else
{
BarChartView.repaint();
BarChartView.setVisibility(View.GONE);
}
}
private void setChartSettings(XYMultipleSeriesRenderer renderer)
{
renderer.setYTitle("Hits");
renderer.setXAxisMin(0);
renderer.setXAxisMax(7);
renderer.setYAxisMin(0);
renderer.setYAxisMax(900);
}
private XYMultipleSeriesDataset getBarDataset()
{
int[] y = {624,430,712};
XYSeries series1 = new XYSeries("A");
XYSeries series2 = new XYSeries("B");
XYSeries series3 = new XYSeries("C");
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
series1.add(1,y[0]);
dataset.addSeries(series1);
series2.add(2,y[1]);
dataset.addSeries(series2);
series3.add(3,y[2]);
dataset.addSeries(series3);
return dataset;
}
protected XYMultipleSeriesRenderer buildBarRenderer() {
XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();
double[] range = {0,5,0,5};
mrenderer.setAxisTitleTextSize(16);
mrenderer.setChartTitleTextSize(20);
mrenderer.setLabelsTextSize(15);
mrenderer.setLegendTextSize(15);
mrenderer.setBarSpacing(0);
mrenderer.setXLabels(1);
mrenderer.addXTextLabel(2.5, "");
mrenderer.setMargins(new int[] {20, 30, 15, 0});
mrenderer.setAxesColor(Color.WHITE);
mrenderer.setChartTitle("");
mrenderer.setXTitle("");
mrenderer.setInitialRange(range, 1);
XYSeriesRenderer renderer1 = new XYSeriesRenderer();
renderer1.setColor(Color.GREEN);
XYSeriesRenderer renderer2 = new XYSeriesRenderer();
renderer2.setColor(Color.GREEN);
XYSeriesRenderer renderer3 = new XYSeriesRenderer();
renderer3.setColor(Color.BLUE);
mrenderer.addSeriesRenderer(renderer1);
mrenderer.addSeriesRenderer(renderer2);
mrenderer.addSeriesRenderer(renderer3);
return mrenderer;
}
}
這裏是xml文件
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainActivity"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout android:id="@+id/graph2"
android:layout_width="160dip"
android:layout_height="200dip"
android:scaleType="fitEnd"
android:layout_marginTop="40dip"
android:layout_marginLeft="790dip"/>
</RelativeLayout>
試試吧! Enjoyyy
三個欄中的兩個是一種顏色,最後一欄是不同的顏色。他們彼此並不接近。我已經在它們之間設置了間距。但酒吧的寬度是不可調整的。這就是我所擔心的。 – Mahe 2013-03-27 06:35:12
我編輯了我的答案運行它並讓我知道... – 2013-03-27 06:45:07
不要只是在沒有解釋的情況下發布代碼。另外,它的格式很差。 – 2016-02-16 12:15:42
它說「對於XYMultipleSeriesRenderer類型,方法setBarWidth(int)未定義」。 – Mahe 2013-03-27 08:36:15
使用最近的版本。 https://repository-achartengine.forge.cloudbees.com/snapshot/org/achartengine/achartengine/1.1.0/ – 2013-03-27 08:46:41
謝謝!這工作! – Mahe 2013-03-27 09:48:26