# SciDAVis 教學 1:XY 散佈圖基本使用方法
> 作者:王一哲
> 日期:2019/12/4
<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.25,下載頁面在此([前往下載](https://sourceforge.net/projects/scidavis/files/SciDAVis/1.25/)) 。類似的商業軟體為 [Origin](https://www.originlab.com/) 和 [SigmaPlot](http://sigmaplot.co.uk/products/sigmaplot/sigmaplot-details.php),但是這兩套軟體的售價不便宜,都在萬元以上。雖然用 MicroSoft Excel 和 LibreOffice Calc 也能做到類似的效果,但是 SciDAVis 處理大量數據的效果更好,即使操作界面是沒有中文化,對高中生而言應該還在可接受的範圍內。
<br />
<img style="display: block; margin-left: auto; margin-right: auto" height="100%" width="100%" src="https://imgur.com/KqJicTy.png">
<div style="text-align:center">SciDAVis</div>
## 安裝軟體
如果作業系統為 Windows,請選用 [scidavis.1.25-win-dist.msi](https://sourceforge.net/projects/scidavis/files/SciDAVis/1.25/scidavis.1.25-win-dist.msi/download),下載後使用系統管理員身份執行安裝檔,接著不斷地按下一步就完成了。如果作業系統為 Linux,請選用 [scidavis-1.25.tar.gz](https://sourceforge.net/projects/scidavis/files/SciDAVis/1.25/scidavis-1.25.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>
## 斜直線方程式的 XY 散佈圖
### 從 CSV 檔匯入資料
可以在 SciDAVis 的儲存格中手動輸入以下的數據,或是先將以下的資料複製、貼上到文字編輯器中,將檔案儲存為**data.csv**,文字編碼應該用 ASCII 或 UTF-8 皆可。
```python
index,x,errx,y,erry
0,1.0,0.1,4.9,0.5
1,2.0,0.1,6.9,0.5
2,3.0,0.1,9.0,0.5
3,4.0,0.1,11.1,0.6
4,5.0,0.1,13.2,0.6
5,6.0,0.2,15.2,0.8
6,7.0,0.2,16.9,0.8
7,8.0,0.2,18.9,0.8
8,9.0,0.2,20.9,0.8
9,10.0,0.2,22.8,0.8
```
<br />
由選單:**File**⇒**Import ASCII** 或 **Ctrl + K**,開啟匯入檔案視窗。
<img style="display: block; margin-left: auto; margin-right: auto" height="40%" width="40%" src="https://imgur.com/ltwGmYI.png">
<div style="text-align:center">匯入檔案選單</div>
<br />
由於資料是以逗號分隔,在匯入檔案視窗中,要記得**將 Separator 選項改成逗號**。另外也可以選擇要將資料匯入哪一個表格,可以蓋掉現有表格的資料,也可以另外增表格。
<img style="display: block; margin-left: auto; margin-right: auto" height="100%" width="100%" src="https://imgur.com/7MCddlA.png">
<div style="text-align:center">匯入檔案視窗</div>
<br />
<img style="display: block; margin-left: auto; margin-right: auto" height="100%" width="100%" src="https://imgur.com/RHMFqBE.png">
<div style="text-align:center">匯入資料檔後的表格</div>
<br />
### 設定欄位資料格式
接著在要修改的欄位上按滑鼠左鍵,在畫面右側也可以更改欄位的描述及資料格式。
<img height="40%" width="40%" src="https://imgur.com/bh42Dpr.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">更改欄位的描述</div>
<br />
<img height="40%" width="40%" src="https://imgur.com/v60gBEV.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">更改欄位的資料格式</div>
<br />
在要修改的欄位上按滑鼠右鍵,選擇**Set Column(s) As**即可修改欄位的資料用途,分別將欄位index設為X、欄位x設為X、欄位errx設為X Error、欄位y設為Y、欄位erry設為Y Error。
<img height="80%" width="80%" src="https://imgur.com/GeKIEXu.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">設定欄位的資料用途</div>
<br />
### 繪製帶有誤差槓的XY散佈圖
#### 插入XY散佈圖
先選取欄位x、y之後,再從選單選取**Plot**⇒**Scatter**,或是在欄位上按滑鼠右鍵,從快速選單中選取**Plot**⇒**Scatter**。
<img height="40%" width="40%" src="https://imgur.com/ZbQVT6S.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">從選單插入XY散佈圖</div>
<br />
<img height="80%" width="80%" src="https://imgur.com/YigtNwl.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">從快速選單插入XY散佈圖</div>
<br />
<img height="60%" width="60%" src="https://imgur.com/9RGOg4H.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">預設格式的XY散佈圖</div>
<br />
#### 修改圖片格式
如果想要修改資料點格式,可以在圖片的資料點上連點滑鼠左鍵兩下,勾選**Fill Color**會在點中填滿指定的顏色,**Edge Color**是點的邊緣線條顏色。
<img height="90%" width="90%" src="https://imgur.com/rzj6irY.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">修改資料點格式</div>
<br />
點選**Plot Associations**,可以修改資料點x軸、y軸數值對應的欄位。
<img height="40%" width="40%" src="https://imgur.com/hbHkov4.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">修改資料點對應的欄</div>
<br />
如果想要修改座標軸及標籤的格式,可以在圖片的座標軸上連點滑鼠左鍵兩下,點選**Axis**分頁,在**Title**欄位中可以修改標籤內容,支援HTML語法;點選**Axis Font**可以修改座標軸數字的字型及大小。
<img height="80%" width="80%" src="https://imgur.com/qNYZEbt.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">修改座標軸性質</div>
<br />
<img height="60%" width="60%" src="https://imgur.com/Na669np.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">修改座標軸數字的字型</div>
<br />
<img height="60%" width="60%" src="https://imgur.com/tODb3Hv.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">修改格式後的XY散佈圖</div>
<br />
#### 插入誤差槓
點選圖片後從選單選取**Graph**⇒**Add Error Bars**或按快速鍵**Ctrl+B**。
<img height="40%" width="40%" src="https://imgur.com/Of3OTB5.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">插入誤差槓</div>
<br />
勾選**Existing column**,從資料表中選取不準量的來源,在視窗的下方勾選**X Error Bars**或**Y Error Bars**,最後點選右上方的**Add**。
<img height="60%" width="60%" src="https://imgur.com/7pIIYbZ.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center"></div>
<br />
<img height="60%" width="60%" src="https://imgur.com/oHndcw6.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">插入誤差槓的XY散佈圖</div>
<br />
#### 插入趨勢線
點選圖片後從選單選取**Analysis**⇒**Quick Fit**⇒**Fit Linear**。
<img height="55%" width="55%" src="https://imgur.com/5CL9DXq.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">選單插入趨勢線</div>
<br />
擬合的結果如下,看起來只有考慮y軸不準量。
$a = 1.9979669965615 \pm 0.0715310360117212$
$b = 2.99177166800124 \pm 0.371842523931618$
$R^2 = 0.999509982857237$
<img height="70%" width="70%" src="https://imgur.com/yyxa9CT.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">擬合結果</div>
<br />
如果要再開啟輸出結果的視窗,可以從選單選取**View**⇒**Results Log**。
<img height="50%" width="50%" src="https://imgur.com/lYain7Z.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">開啟輸出結果視窗</div>
<br />
#### 匯出成圖檔
點選圖片後從選單選取**File**⇒**Export Graph**⇒**Current**或按快速鍵**Alt+G**。
<img height="50%" width="50%" src="https://imgur.com/TV3YCk5.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">匯出圖檔選單</div>
<br />
決定存檔路徑、檔名及圖片格式,最後按**存檔**。經過測試後發現,存成png檔大約400KB,存成jpg檔大約35KB,但是在電腦螢幕上看起來效果差不多。
<img height="70%" width="70%" src="https://imgur.com/jiV2XmZ.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">匯出圖檔視窗</div>
<br />
<img height="60%" width="60%" src="https://imgur.com/NJ9V5zd.jpg" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">匯出的XY散佈圖</div>
<br />
## 練習題
請將以下的數據輸入至 SciDAVis,繪製帶有誤差槓的 XY 散佈圖,並做線性擬合,找出最接近直線的斜率和截距,理論上擬合的結果約為
$$slope = -3.05 \pm 0.06$$
$$intercept = 5.09 \pm 0.25$$
$$R^2 = 0.9995$$
```python
index,x,errx,y,erry
0,2,0.2,-1.02,0.2
1,4,0.3,-7.13,0.5
2,6,0.1,-12.87,1.0
3,8,0.2,-19.36,1.8
4,10,0.3,-25.43,2.1
5,12,0.1,-29.87,2.0
6,14,0.3,-37.98,2.2
7,16,0.2,-43.17,1.9
8,18,0.3,-50.66,1.8
9,20,0.1,-56.45,2.1
```
<img height="60%" width="60%" src="https://imgur.com/rOV6LTF.jpg" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">練習題線性擬合結果</div>
<br />
<br />
## 參考資料
1. SciDAVis 官方網站。2019年12月4日,取自 http://scidavis.sourceforge.net/
2. 賈至達(2017)。SciDAVis數據繪圖軟體簡介,取自 http://typt.phy.ntnu.edu.tw/images/Documentation/SciDAVis_intro_NTNU_Professor_Chia.pdf
---
###### tags:`SciDAVis`、`Physics`、`校訂必修`