【问题标题】:How to set bar width using achartengine. My last bar is Squeezed out如何使用 achartengine 设置条形宽度。我的最后一个酒吧被挤掉了
【发布时间】:2013-03-17 04:33:40
【问题描述】:

我有一个显示 3 个条形的条形图。以不同宽度显示的三个条形图。如何设置所有条的宽度相等?

这是我的条形图的快照

请任何人建议!

任何帮助将不胜感激!

【问题讨论】:

    标签: android width bar-chart achartengine


    【解决方案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>
    

    试试看!!尽情享受吧

    【讨论】:

    • 三个条中的两个是一种颜色,最后一个是不同的颜色。他们彼此并不接近。我在它们之间设置了间距。但是栏的宽度是不可调的。这就是我担心的。
    • 不要只发布代码而不做解释。此外,它的格式非常糟糕。
    【解决方案2】:

    看起来您有 2 个系列的数据。一个系列有 2 件,绿色的只有一件。当系列中只有一个项目时,使用以下方法设置条形宽度可能是有意义的:

    renderer.setBarWidth(width);
    

    另一种解决方案是在您的系列中添加至少两个项目。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多