Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > Mobile > Mobile Forum > Android - ช่วยด้วยครับ Grid ทางแกน X ไม่ขึ้้นครับ (Achartengine Line Graph ) ขอบคุณครับ



 

Android - ช่วยด้วยครับ Grid ทางแกน X ไม่ขึ้้นครับ (Achartengine Line Graph ) ขอบคุณครับ

 



Topic : 100599



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์




ขอคำแนะนำจากผู้รู้ครับ ผมใช้ไลบารี่ Achartengine ในการทำกราฟครับ แต่ผมติดปัญหาตรงที่ Grid ทางแกน X มันไม่ขึ้นครับ ขึ้นแต่ทางแกน Y ซึ่งค่าทั้งหมดผม Query จาก Sqlite มาพล๊อตครับ

โค้ดดังนี้

Code
package com.diabetes.record;

import java.util.ArrayList;

import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.graphics.Paint.Align;
import android.os.Bundle;
import android.text.format.Time;
import android.view.View;
import android.widget.LinearLayout;

import com.diabetes.R;


public class GraphLine extends Activity{
	private Time date ;
	private View mChart;
	private SQLiteDatabase mDB;
	private SqlLiteHelpers myHelpers;
	private Cursor mCursor;
	private ArrayList<Double> BloodValue ;
	private ArrayList<String> AllRecord;

    
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.line_chart);
	    
		openChart();
		
	}


    @SuppressWarnings("static-access")
	public void openChart(){
    	
    	
    	date = new Time();
    	date.setToNow();
    	final String DATE_TITLE = date.format("ว/ด/ป : %d.%m.%Y");
    	
    
    	
     
        int Increase = 1;
        
        
        ArrayList<Integer> X_value = new ArrayList<Integer>();
        
       
        // new opject XYSeries for Blood value
        XYSeries bloodXySeries = new XYSeries("ค่าน้ำตาลในเลือด");
        
        // Query Data
        
     	myHelpers = new SqlLiteHelpers(this);
    	mDB = myHelpers.getWritableDatabase();
    	
    	mCursor = mDB.rawQuery("SELECT " + SqlLiteHelpers.COLUMN_DATE + ", " 
				+ SqlLiteHelpers.COLUMN_BLOOD + " FROM " + SqlLiteHelpers.TABLE_BLOOD, null);
    	
     
    	 BloodValue = new ArrayList<Double>();
    	 AllRecord = new ArrayList<String>();
    	
    	mCursor.moveToFirst();
    	while(!mCursor.isAfterLast()){
    		
    		
    		BloodValue.add(mCursor.getDouble(mCursor.getColumnIndex(myHelpers.COLUMN_BLOOD)));
    		AllRecord.add(mCursor.getString(mCursor.getColumnIndex(myHelpers.COLUMN_DATE)));
    		X_value.add(Increase);
    		Increase ++ ;
    		
    	mCursor.moveToNext();
    	
    
    	}
    	
    	
    	
    	
    	for(int jj = 0 ; jj < X_value.size(); jj++){
    		
        	bloodXySeries.add(X_value.get(jj),BloodValue.get(jj));
 
        
        	}
        
        
        
        
        
       
        
  
        // Creating a dataset to hold each series
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
       
        // Adding Income Series to the dataset
        dataset.addSeries(bloodXySeries);


 
        // Creating XYSeriesRenderer to customize incomeSeries
        XYSeriesRenderer Renderer = new XYSeriesRenderer();
        
     
       
        //set Color
        Renderer.setColor(Color.parseColor("#800080"));
       
        //set point Style
        Renderer.setPointStyle(PointStyle.CIRCLE);
        
        // fill in point
        Renderer.setFillPoints(true);
        
        // Set Line Size
        Renderer.setLineWidth(4);
        
        //Show value above point
        Renderer.setDisplayChartValues(true);
        
        // set text size value
        Renderer.setChartValuesTextSize(18);
        
        //set Spacing
        Renderer.setChartValuesSpacing(20);
       
        Renderer.getChartValuesTextSize();
       
        // Creating a XYMultipleSeriesRenderer to customize the whole chart
        XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer(); 
        
        multiRenderer.setXTitle("\n \n \n  "+DATE_TITLE);
        multiRenderer.setYTitle(" mg/dL (มิลลิกรัมต่อเดซิลิตร)");
        multiRenderer.setZoomButtonsVisible(true);
        
        
        // Set text size at X and Y
        
        multiRenderer.setLabelsTextSize(13);
        multiRenderer.setLegendTextSize(15);
        multiRenderer.setAxisTitleTextSize(15);
        multiRenderer.setPointSize(6);
        multiRenderer.setPanEnabled(true, true);
        multiRenderer.setPanLimits(new double[] { 0, Double.MAX_VALUE, 0, 600 });
        multiRenderer.setZoomEnabled(false, true);
        
      
   
        multiRenderer.setYAxisMin(10,0);
        multiRenderer.setYAxisMax(300);
        
        
        
      
       multiRenderer.setShowGrid(true);
     
       
       
        multiRenderer.setGridColor(Color.GRAY);
        
        //Set Vaule min Y
        multiRenderer.setYLabels(20);
        multiRenderer.setXLabels(0);
      
       
        multiRenderer.setYLabelsAlign(Align.LEFT);
        multiRenderer.setXLabelsAlign(Align.CENTER);
       
    
       
        
        // BrackGround Color
  
        multiRenderer.setMarginsColor(Color.parseColor("#FFEBCD"));
        multiRenderer.setAxesColor(Color.LTGRAY);
        
        multiRenderer.setLabelsColor(Color.BLACK);
        multiRenderer.setXLabelsColor(Color.BLACK);
        
        multiRenderer.setYLabelsColor(0, Color.parseColor("#FF0000"));
        multiRenderer.setApplyBackgroundColor(true);
        multiRenderer.setBackgroundColor(Color.WHITE);
 
        
       // for get all Record
        for(int i=0;i < AllRecord.size();i++){
            
            
            multiRenderer.addXTextLabel(i+1,AllRecord.get(i));
            
         }
       

        multiRenderer.addSeriesRenderer(Renderer);
     
 
        // Getting a reference to LinearLayout of the MainActivity Layout
        LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_cont);
 
        // Creating a Line Chart
        mChart = ChartFactory.getLineChartView(getBaseContext(), dataset, multiRenderer);
 
        // Adding the Line Chart to the LinearLayout
        chartContainer.addView(mChart);
	
    }

}


ซึ่งทาง คิวรี่ ค่าของแกน X ผมดึงค่าวันที่ที่ทำการบันทึกขึ้นมา ซึ่งเก็บไว้ใน ArrayList<String> ซึ่งตอนนำมาพลอตแกน X มันไม่ขึ้นครับครับ

ผลลัพธ์

Result



Tag : Mobile, Android, Mobile









ประวัติการแก้ไข
2013-09-17 17:30:14
2013-09-17 17:31:37
2013-09-17 17:32:05
2013-09-17 17:34:54
2013-09-18 10:23:26
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-09-17 17:26:56 By : 029aurora View : 1326 Reply : 3
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

คงจะต้องได้ Debug ดูแล้วครับ ตอนที่มันอ่านค่าจาก ArrayList แล้ว Assign ให้กราฟมันได้ใส่ค่าถูกต้องตามที่ Charts ต้องการหรือไม่

ว่าแต่ตัวอย่างก่อนที่จะแก้ไขมันแสดงได้ปกติหรือเปล่าครับ ถ้าปกติก็จะต้องดูว่ามัน Assign ค่าผิดหรือไม่






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-18 06:36:15 By : mr.win
 


 

No. 2



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ได้และนะครับ ในกรณีที่ ข้อมูลทางแกน X เป็นชนิดสตริงใช้ multiRenderer.setShowCustomTextGrid(true); ครับ ขอบคุณสำหรับพื้นที่ในการโพสถามและแหล่งความรู้ดีๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-18 10:21:52 By : 029aurora
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เยี่ยมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-18 14:48:51 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Android - ช่วยด้วยครับ Grid ทางแกน X ไม่ขึ้้นครับ (Achartengine Line Graph ) ขอบคุณครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่