2013-03-27 15 views

回答

3

它看起來像你有2系列的數據。一個系列有2個項目,綠色只有一個項目。當你在該系列只有一個項目,它可能是有意義的使用來設定條寬:

renderer.setBarWidth(width); 

另一個解決方案是至少有兩個項目添加到您的系列。

+0

它說「對於XYMultipleSeriesRenderer類型,方法setBarWidth(int)未定義」。 – Mahe 2013-03-27 08:36:15

+3

使用最近的版本。 https://repository-achartengine.forge.cloudbees.com/snapshot/org/achartengine/achartengine/1.1.0/ – 2013-03-27 08:46:41

+0

謝謝!這工作! – Mahe 2013-03-27 09:48:26

-1
@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

+0

三個欄中的兩個是一種顏色,最後一欄是不同的顏色。他們彼此並不接近。我已經在它們之間設置了間距。但酒吧的寬度是不可調整的。這就是我所擔心的。 – Mahe 2013-03-27 06:35:12

+0

我編輯了我的答案運行它並讓我知道... – 2013-03-27 06:45:07

+0

不要只是在沒有解釋的情況下發布代碼。另外,它的格式很差。 – 2016-02-16 12:15:42

相關問題