# SciDAVis繪圖:XY散布圖 >作者:王一哲     日期:2018/3/25 <br></br> [SciDAVis](http://scidavis.sourceforge.net/) 的全名為 <span style="font-weight:bold;color:red">Sci</span>entific <span style="font-weight:bold;color:red">D</span>ata <span style="font-weight:bold;color:red">A</span>nalysis and <span style="font-weight:bold;color:red">Vis</span>ualization,照字面的意思可以翻譯為<span style="font-weight:bold;color:red">科學資料分析與視覺化工具</span>,用來分析數據、作圖,而且它是一套自由軟體最新的版本為1.22,下載頁面在此([前往下載](https://sourceforge.net/projects/scidavis/files/SciDAVis/1.22/)) 。類似的商業軟體為 [Origin](https://www.originlab.com/) 和 [SigmaPlot](http://sigmaplot.co.uk/products/sigmaplot/sigmaplot-details.php),但是這兩套軟體的售價不便宜,都在萬元以上。雖然用 MicroSoft Excel 和 LibreOffice Calc 也能做到類似的效果,但是 SciDAVis 處理大量數據的效果更好,即使操作界面是沒有中文化,對高中生而言應該還在可接受的範圍內。 以下教學用採的繪圖數據是由 VPython 教學〈[終端速度](https://hackmd.io/s/rJHr7-fG7)〉的程式碼產生的,下載連結在此([取得檔案](https://drive.google.com/file/d/1I0VFpNTrF5Ierpph7on-PvX9SoJUaoaM/view))。 <br></br> ## 安裝軟體 如果作業系統為 Windows,請選用 [scidavis.1.22-win-dist.msi](https://sourceforge.net/projects/scidavis/files/SciDAVis/1.22/scidavis.1.22-win-dist.msi/download),下載後使用系統管理員身份執行安裝檔,接著不斷地按下一步就完成了。如果作業系統為 Linux,請選用 [scidavis-1.22.tar.gz](https://sourceforge.net/projects/scidavis/files/SciDAVis/1.22/scidavis-1.22.tar.gz/download),下載後解壓縮,再依照資料夾中的檔案 "README.installer" 的指示編輯檔案及安裝。安裝完成後執行程式,畫面如下。 <img style="display: block; margin-left: auto; margin-right: auto" height="100%" width="100%" src="https://i.imgur.com/a4Crqs3.png"> <div style="text-align:center">SciDAVis 畫面截圖</div> <br></br> ## 匯入資料檔 如果沒有現成的資料檔,那就在表格中手動輸入資料,同一個欄位只能有一種資料,例如都是時間 t 或是位置 x。而我們已經有資料檔,4個欄位分別為 "t(s), y(m), v(m/s), a(m/s^2)",每列的資料之間以逗號(<span style="font-weight:bold;color:red">,</span>)分隔。 1. 由選單:<span style="font-weight:bold;color:red">File</span> ⇒ <span style="font-weight:bold;color:red">Import ASCII</span> 或 <span style="font-weight:bold;color:red">Ctrl + K</span>,開啟匯入檔案視窗。 <img style="display: block; margin-left: auto; margin-right: auto" height="35%" width="35%" src="https://i.imgur.com/qiTBSg7.png"> <div style="text-align:center">匯入檔案選單</div> <br></br> 2. 由於資料是以逗號分隔,在匯入檔案視窗中,要記得<span style="font-weight:bold;color:red">將 Separator 選項改成逗號</span>。另外也可以選擇要將資料匯入哪一個表格,可以蓋掉現有表格的資料,也可以另外增表格。 <img style="display: block; margin-left: auto; margin-right: auto" height="100%" width="100%" src="https://i.imgur.com/EoDUccQ.png"> <div style="text-align:center">匯入檔案視窗</div> <br></br> 3. 理論上 SciDAVis 應該會自動將第一欄當 X 軸資料,將另外三欄當成 Y 軸資料。如果沒有自動正確判斷也沒關係,在要修改的欄位上按滑鼠右鍵,選擇 <span style="font-weight:bold;color:red">Set Column(s) As</span> 即可修改。在畫面右側也可以更改欄位的描述。 <img style="display: block; margin-left: auto; margin-right: auto" height="100%" width="100%" src="https://i.imgur.com/PFXOeNd.png"> <div style="text-align:center">匯入資料檔後的表格</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="70%" width="70%" src="https://i.imgur.com/2YotNsP.png"> <div style="text-align:center">修改欄位屬性的選單</div> <br></br> ## 繪製一張XY散布圖 1. 在要畫圖的欄位標籤上按滑鼠左鍵選取整欄的數據,再由選單:<span style="font-weight:bold;color:red">Plot</span> ⇒ <span style="font-weight:bold;color:red">Scatter</span>;或是直接在欄位標籤上按滑鼠右鍵,再由出現的選單:<span style="font-weight:bold;color:red">Plot</span> ⇒ <span style="font-weight:bold;color:red">Scatter</span>,SciDAVis 會自動以設定為 X 軸欄位的數據以及選取欄位的數據作圖。 <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/GKQePFt.png"> <div style="text-align:center">在欄位標籤上按滑鼠左鍵再由選單繪圖</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="40%" width="40%" src="https://i.imgur.com/pb6N3ie.png"> <div style="text-align:center">在欄位標籤上按滑鼠右鍵繪圖</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/3Ntrk2E.png"> <div style="text-align:center">以 y(m) 欄位作為縱軸數值、以 t(s) 欄位作為横軸數值的 XY 散布圖</div> <br></br> 2. 通常預設的圖片格式不太符合需求,需要手動修改圖片標題、坐標軸標籤、坐標軸格式。在圖片標題上連點滑鼠左鍵兩下,即可叫出修改標題文字的視窗,標題文字可支援 html 編碼格式,例如 \<i\> \<\/i\> 會將夾在中間的文字改為斜體字,\<sub\> \<\/sub\> 會將夾在中間的文字改為下標。如果再按視窗當中的 Font,則會開啟修改標題字形視窗,可以修改標體使用的字形、大小。可以用同樣的方法設定坐標軸標籤。 <img style="display: block; margin-left: auto; margin-right: auto" height="40%" width="40%" src="https://i.imgur.com/5y21ZSD.png"> <div style="text-align:center">標題文字選項視窗</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="60%" width="60%" src="https://i.imgur.com/ecZewrL.png"> <div style="text-align:center">修改標題字形視窗</div> <br></br> 3. 如果在坐標軸上連點滑鼠左鍵兩下,即可叫出修改坐標軸格式的視窗,可以修改坐標軸的標題、文字格式,如果選取 <span style="font-weight:bold;color:red">Show</span> 前方的核取方塊,此坐標軸才會顯示在圖片上。另外兩個分頁,<span style="font-weight:bold;color:red">Scale</span> 可以修改坐標軸顯示的範圍,<span style="font-weight:bold;color:red">Grid</span> 可以設定格線樣式。 <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/2VTvl63.png"> <div style="text-align:center">修改坐標軸格式的視窗</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/8ExdzD8.png"> <div style="text-align:center">修改坐標軸顯示範圍的視窗</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/qTSJZTp.png"> <div style="text-align:center">設定格線樣式的視窗</div> <br></br> 4. 如果在數據點上連點滑鼠左鍵兩下,會開啟 <span style="font-weight:bold;color:red">Plot details</span> 視窗,在此可以修改數據點的形狀、顏色、大小,如果再點右下角的 <span style="font-weight:bold;color:red">Plot Associations</span>,則可以修改繪圖的資料來源。 <img style="display: block; margin-left: auto; margin-right: auto" height="90%" width="90%" src="https://i.imgur.com/JHIc1H1.png"> <div style="text-align:center">Plot details 視窗</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="35%" width="35%" src="https://i.imgur.com/sHOcCQj.png"> <div style="text-align:center">Plot Associations 視窗</div> <br></br> 5. 修改格式後的 y-t 圖如下。 <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/4tEqAdM.png"> <div style="text-align:center">修改後的 y-t 圖</div> <br></br> 6. 可以將畫好的圖匯出,點選圖片之後由選單:<span style="font-weight:bold;color:red">File</span> ⇒ <span style="font-weight:bold;color:red">Export Graph</span> ⇒ <span style="font-weight:bold;color:red">Current</span> 匯出選定的圖片,或是在繪圖視窗上按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Export</span> ⇒ <span style="font-weight:bold;color:red">Window</span> 匯出選定的圖片。建議將圖片存成 svg 檔,放大圖片是就不會有失真的問題;如果要放到其它文件中,建議選用 jpg 檔,不知道為什麼 SciDAVis 匯出的 png 檔檔案很大。 <img style="display: block; margin-left: auto; margin-right: auto" height="50%" width="50%" src="https://i.imgur.com/43hbs6f.png"> <div style="text-align:center">由選單匯出圖片</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="50%" width="50%" src="https://i.imgur.com/kZQFy2J.png"> <div style="text-align:center">在繪圖視窗上按滑鼠右鍵匯出圖片</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/T0DmGYg.png"> <div style="text-align:center">匯出圖片存檔視窗</div> <br></br> 7. 為了保持圖片風格的一致性,可以將圖片儲存成範本,在繪圖視窗按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Save As Template</span>,將檔案放在自己方便用的地方,以後要畫圖時開啟範本再修改繪圖數據即可。 <img style="display: block; margin-left: auto; margin-right: auto" height="35%" width="35%" src="https://i.imgur.com/jdgIzet.png"> <div style="text-align:center">將圖片儲存成範本 </div> <br></br> ## 在一個繪圖視窗中繪製多張XY散布圖 1. 在已經畫好 y-t 圖的繪圖視窗上按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Duplicate</span>,複製繪圖視窗。 <img style="display: block; margin-left: auto; margin-right: auto" height="35%" width="35%" src="https://i.imgur.com/nEO3udI.png"> <div style="text-align:center">複製繪圖視窗選單 </div> <br></br> 2. 在繪圖視窗的空白處按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Add Layer</span>,SciDAVis 會詢問是否猜測最佳的圖片配置,建議採用,即使猜測的位置不符合需求可以再手動調整。 <img style="display: block; margin-left: auto; margin-right: auto" height="35%" width="35%" src="https://i.imgur.com/36wlxm6.png"> <div style="text-align:center">新增繪圖層選單 </div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/jMCPvv0.png"> <div style="text-align:center">是否猜測最佳的圖片配置 </div> <br></br> 3. 在繪圖視窗中的空白處按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Arrange Layer</span>,由於我想要將 y-t、v-t、a-t 圖放在同一列,將視窗中的 <span style="font-weight:bold;color:red">Grid</span> ⇒ <span style="font-weight:bold;color:red">Columns</span> 調成 3,<span style="font-weight:bold;color:red">Rows</span> 調成 1。 <img style="display: block; margin-left: auto; margin-right: auto" height="35%" width="35%" src="https://i.imgur.com/VDXdsaM.png"> <div style="text-align:center">Arrange Layers 選單 </div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="70%" width="70%" src="https://i.imgur.com/KBoLlZt.png"> <div style="text-align:center">Arrange Layers 視窗 </div> <br></br> 4. 在繪圖視窗中新增的空白散布圖上按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Add/Remove Curve</span>,將 v(m)、a(m/s^2) 欄位的數據加入繪圖。 <img style="display: block; margin-left: auto; margin-right: auto" height="40%" width="40%" src="https://i.imgur.com/zKGkjLF.png"> <div style="text-align:center">Add/Remove Curve 選單 </div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/KNUMe1w.png"> <div style="text-align:center">Add/Remove Curve 視窗</div> <br></br> 5. 仿照前一段的方法調整圖片標題、坐標軸……等項目,最後的成果如下。 <img style="display: block; margin-left: auto; margin-right: auto" height="100%" width="100%" src="https://i.imgur.com/Bnkjf9P.jpg"> <div style="text-align:center">將 y-t、v-t、a-t 圖放在同一個繪圖視窗 </div> <br></br> ## 在一張XY散布圖中使用兩個不同的縱軸 1. 在已經畫好 y-t 圖的繪圖視窗上按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Duplicate</span>,複製繪圖視窗。 <img style="display: block; margin-left: auto; margin-right: auto" height="35%" width="35%" src="https://i.imgur.com/nEO3udI.png"> <div style="text-align:center">複製繪圖視窗選單 </div> <br></br> 2. 在複製後的 y-t 圖上按滑鼠右鍵選擇 <span style="font-weight:bold;color:red">Add/Remove Curve</span>,將 v(m) 欄位的數據加入繪圖。 <img style="display: block; margin-left: auto; margin-right: auto" height="40%" width="40%" src="https://i.imgur.com/zKGkjLF.pngg"> <div style="text-align:center">Add/Remove Curve 選單</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/KNUMe1w.png"> <div style="text-align:center">Add/Remove Curve 視窗 </div> <br></br> 3. 在坐標軸上連按滑鼠左鍵兩下,開啟 <span style="font-weight:bold;color:red">General Plot Options</span> 視窗,點選第三個分頁 <span style="font-weight:bold;color:red">Axis</span>,選擇顯示右側坐標軸並修改坐標軸標題、字體、形色。 <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/44BKAdB.png"> <div style="text-align:center">調整右側坐標軸視窗</div> <br></br> 4. 點選第一個分頁 <span style="font-weight:bold;color:red">Scale</span>,調整坐標軸的範圍。 <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/z5QIAQj.png"> <div style="text-align:center">調整坐標軸的範圍視窗</div> <br></br> 5. 在散布圖中的 v-t 曲線上連按滑鼠左鍵兩下,開啟 <span style="font-weight:bold;color:red">Plot details</span> 視窗,點選第一個分頁 <span style="font-weight:bold;color:red">Axes</span>,將 <span style="font-weight:bold;color:red">y Axis</span>(y軸)改為 <span style="font-weight:bold;color:red">Right</span>(右側),這樣就可以在同一張圖中將兩條曲線的值對應到不同的縱軸,避免其中一條曲線被壓扁。 <img style="display: block; margin-left: auto; margin-right: auto" height="90%" width="90%" src="https://i.imgur.com/Ro2fhem.png"> <div style="text-align:center">調整 y 軸對應坐標視窗</div> <br></br> <img style="display: block; margin-left: auto; margin-right: auto" height="80%" width="80%" src="https://i.imgur.com/gxCfcqj.jpg"> <div style="text-align:center">紅色的 y-t 圖對應左側的縱軸,藍色的 v-t 圖對應右側的縱軸</div> <br></br> ## 結語 目前試用了一陣子,個人認為 SciDAVis 絕對能滿足高中、大學物理實驗在數據處理及作圖上的需求,只是缺少了中文翻譯讓學生在學習上多了一點障礙,但還是值得學習的軟體,也許下一次的科展作品就可以試著用 SciDAVis 來處理數據。 ## 參考資料 1. SciDAVis 官方網站。2018年3月21日,取自 http://scidavis.sourceforge.net/ 2. 賈至達(2017)。SciDAVis數據繪圖軟體簡介,取自 http://typt.phy.ntnu.edu.tw/images/Documentation/SciDAVis_intro_NTNU_Professor_Chia.pdf --- ###### tags:`SciDAVis`