ก่อนหน้านี้การสร้าง Web Data Visulization อาจต้องความรู้ด้าน computer programming language มากกว่า 1 ภาษา แต่ปัจจุบันเปลี่ยนไป มี platform เกิดขึ้นหลาย platform ส่งผลให้การทำงานง่ายขึ้น หนึ่งใน platform เหล่านั้นคือ Dash[1]
Dash เป็น dual license (ในข้อเขียนจะใช้ opensource license) เขียนด้วย Python (ปัจจุบันรองรับ R และ Julia) ใช้หลักการของ declarative programming [2] คือผู้พัฒนางานบอกให้ระบบทราบว่าต้องการอะไรบ้าง ลำดับการเสนอผลลัพธ์เป็นอย่างไร โดยไม่ต้องบอกรายละเอียด การคำนวณต่างๆ ระบบจะเป็นผู้กระทำเอง หลักการนี้ช่วยให้ผู้พัฒนาไม่จำเป็นต้องเรียนรู้การใช้ภาษาคอมพิวเตอร์มากเกินไป ยกตัวอย่างกรณีการใช้งาน Dash ใช้ภาษา Python ภาษาเดียว ไม่จำเป็นต้องใช้ javascript , CSS, HTML (จำเป็นต้องมีความรู้บ้างเพื่อให้เข้าใจโครงสร้างของงาน) 
องค์ประกอบหลักในการทำงานของ Dash มี 3 ส่วนคือ
  
- Flask ทำหน้าที่ของ web server [3]
 - Plottly เป็น interactive graphing python และ javascript library [4]
 - ReactJs เป็น front end javascript library สำหรับงาน user interface [5]
 
การติดตั้ง
Hardware :
  Raspberry Pi 3 model B ระบบปฎิบัติการ Raspbian buster (debian 10)
สร้าง Virtual environment (venv):
  การสร้าง virtual environment อาจไม่จำเป็น แต่หากต้องการให้ระบบนี้แยกออกเป็นอิสระเพื่อจัดการเรื่อง package ง่ายก็ควรจะทำ กรณีที่ไม่ต้องการสร้าง venv ข้ามไปขั้นตอนต่อไปเลย
  
$ mkdir dash_proj
$ python3 -m vevn dash_proj
$ cd dash_proj
$ source bin/activation
    
  หมายเหตุ หากไม่สามารถใช้คำสั่ง venv ได้ ต้องทำการติดตั้งก่อน ด้วยคำสั่ง sudo pip3 install virtualenv
 Install packages:
    
(dash_proj) $ python -m pip install dash pandas
    
    เนื่องจากกรอบของงานในคราวนี้คือการสร้าง data visualization ซึ่งต้องอาศัย data analysis package และในที่นี้เลือกใช้ pandas [6]
  Dash application structure
Packages
ในการสร้าง application เรามักใช้ packages หลัก 3 packages คือ
- Dash
 - เป็น back bone ของ application
 - Dash Core Components
 - บรรจุ interactive component เช่น drop down list, date selector ฯล
 - Dash HTML Component
 - บรรจุ component ดูแลการใช้ HTML tag เช่น div, h1 ฯล
 
นอกจากนี้จะเป็น package ที่ผู้พัฒนาต้องพิจารณาเองว่าจะใช้อะไรเพิ่ม
  Code structure
โครงสร้างโดยทั่วไปแบ่งได้เป็น 5 ส่วนดังนี้
    | Part | Python code | 
|---|---|
| 1.Libraries | 
          
          
           | 
        
| 2. Initiation | 
          
          
           | 
        
| 3. Layout ออกแบบหน้าตาของ application | 
          
          
           | 
        
| 4. Callback | 
          
          
           | 
        
| 5. Running | 
          
          
           | 
        
Hello World App
Application แรกนี้ใช้โครงสร้างแบบที่กล่าวมาข้างต้นยกเว้นในส่วน callback functions 
  
      
import dash
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash(__name__)
app.layout = html.Div(children=[
    html.H1(children='Hello World')    
])
if __name__ == '__main__':
    app.run_server('0.0.0.0',debug=True)  
    
  
  เขียน Code ตามตัวอย่าง บันทึกไว้ในไฟล์ชื่อ hello_world.py (เปลี่ยนได้) แล้วทดลองใช้งานด้วยคำสั่ง
    
(dash_proj) $ python hello_world.py
    บนหน้าจอจะปรากฏดังรูปที่ 2
    
  
  เนื้อหาในตอนนี้ได้แนะนำให้รู้จักกับ Dash ในภาพรวม องค์ประกอบพื้นฐาน โครงสร้างหลักในการสร้าง Dash application การใช้งานในลักษณะของ web application เบื้องต้น การใช้งานที่มากกว่าจะได้กล่าวถึงในตอนต่อๆ ไป
อ้างอิง
  
  
  
  
  [5] https://reactjs.org/
  
Sign up here with your email




ConversionConversion EmoticonEmoticon