4 談談gnuplot(十四) 第二座標軸

2021-07-31 17:49:49 字數 2512 閱讀 1595

回首看看我們以前所有的作圖,橫座標都標示在底部,而縱座標都標示在左側。其實,在影象頂部和右側,還隱藏著一對不太引人注意的座標軸,我們可以管它們叫做「第二座標軸」。平時,它們只是第一對座標軸的映象;在我們需要的時候,它們可以用來表示不同的物理量。有時候,我們會有兩組性質不同但是又相互關聯的資料,這時候我們或許想把他們畫在同一副圖上,以便比較。

還拿北京市月平均降水量舉例,但是這次,我們把溫度也加上。下面是我們的資料檔案 weather_beijing.dat:

### 檔案開始 ###

# 北京月平均降水量(公釐)及氣溫(攝氏度)

## 月份  降水量  氣溫

# ***************====

1       2.5     -4

2       5.1     -2

3       10.2    6

4       25.4    13

5       27.9    20

6       71.1    24

7       175.3   26

8       182.9   25

9       48.3    20

10      17.8    13

11      5.1     5

12      2.5     -2

### 檔案結束 ###

我們之前講過的所有有關座標的引數,在第二座標軸上均適用,只不過相應的名字起始字母改為 x2 或者 y2,例如 ylabel 改為 y2label。另外,plot 命令有乙個新的引數 axis,用來控制使用哪個座標軸,例如 axis x1y2 就表示使用第一橫軸和第二縱軸。現在我們來看用上面資料作圖的例子:

gnuplot> set xlabel "月份"

gnuplot> set ylabel "降水量(公釐)"

gnuplot> set y2label "氣溫(攝氏度)"

gnuplot> set title "北京市月平均降水量及氣溫"

gnuplot> set xrange [0.5:12.5]

gnuplot> set xtics 1,1,12

gnuplot> plot "weather_beijing.dat" u 1:2 w lp pt 5 lc rgbcolor "#2b60de" axis x1y1 t "降水量", "weather_beijing.dat" u 1:3 w lp pt 7 lc rgbcolor "#f62817" axis x1y2 t "氣溫"

這裡的氣溫資料使用了影象右邊的第二縱軸

y2,但是 y2 軸上的刻度並沒有變化,依然是左邊

y1 軸的映象。我們在這裡有兩件事要做:

去除右邊縱軸上的 y1 刻度映象,否則這些刻度標記將和新的 y2 刻度標記混起來,導致無法識別;

在右邊縱軸上加上 y2 刻度標記。

我們執行下面的命令:

好了,現在降水量和溫度資料分別對應於左側和右側的縱座標。

看到這裡,我們可能有點懷念我們上一講談到的

grid。如果能加上柵格,資料圖示就更清楚了。但是現在我們有兩組不同的縱座標,如果都開啟柵格,還不亂套了?

set grid 命令允許我們在開啟柵格時,選擇使用哪一組座標。例如:

gnuplot> set grid xtics y2tics

會開啟

x1 和

y2 的柵格。但是這還是不能兼顧兩組資料。最好的解決方案是,讓兩個縱軸有相同數目的分格,這樣兩套

grid 也就重合了,開啟任何乙個就可以了。例如,上面的圖中左側縱軸有 10 個分格,我們讓右側縱軸也有 10 個分格:

現在看起來好多了。

最後,不知道大家注意到沒有,在開始的

plot 命令裡,我們用了新的方式定義圖線顏色。在

第七講「點線風格」裡,我們提到過,可以用預定義的數字**來定義圖線顏色。但是在這裡,我們使用了

rgbcolor 來定義顏色,這很大程度上增加了顏色選擇範圍,允許更好的顯示效果。而其用法也很簡單,就是在

rgbcolor 之後,加上顏色的 rgb **,了解 html 的朋友應該對這個不陌生。

談談gnuplot(五) 座標取值範圍及刻度

gnuplot set samples 500 gnuplot set xlabel x gnuplot set ylabel y gnuplot set title sin 5 x 函式影象 這裡預設的 x 取值範圍是從 10 到 10。我們現在希望 x 的取值範圍從 2 到 2 這樣函式影象可以...

自學《SLAM十四講》 第二講

1.c 中的類和物件的理解 就好比人類和個人?不知道可不可以這麼理解。2.stl standard template library 就是標準模板庫,是一些 容器 的集合 3.linux的目錄結構 其實就是新的c 的標準,用著用著就熟悉了 5.cmake cmake是乙個跨平台的安裝 編譯 工具,可...

(4)第二章習題

書籍 c primer plus 第6版 1 編寫乙個c 程式,它顯示您的姓名和位址。include using std cout using std endl int main 2 編寫乙個c 程式,它要求使用者輸入乙個以long為單位的距離,然後將它轉換為碼 一long 等於220碼 inclu...