填充

用畫筆繪製了圓形或多邊形之後,還可以爲其填充顏色。在GMT模塊的語法介紹中,一般用 fill 表示需要指定填充屬性,讀者在見到 fill 時應自動聯想到本節介紹的內容。

填充 fill 有兩種方式/形式:填充顏色和填充圖案。

最常見的情況是使用 plot 模塊繪製一個多邊形區域或一個符號,然後使用 -Gfill 選項爲其填充顏色。爲了方便描述,這一節以 -Gfill 爲例。

填充顏色

給多邊形或符號填充顏色很簡單,直接用 -Gcolor 即可。顏色在 顏色 一節已經介紹過了。比如 -Gred 表示填充色爲紅色, -G230/200/0 表示填充色爲 230/200/0

填充圖案

除了可以填充顏色之外,還可以使用填充圖案(pattern)。比如地質圖裏經常會給不同區域填充不同的圖案以區分不同的地質結構。其語法爲: -GP|ppattern[+bcolor][+fcolor][+rdpi]

pattern 有兩種取法:

  • 取1到90內的整數,表示使用GMT提供的GMT預定義填充圖案
  • 取文件名,表示使用一個1、8或24位Sun光柵文件作爲位圖圖案

+rdpi 設置了用於填充的位圖圖案的分辨率。dpi 越大,則填充區域內位圖重複的次數越多。dpi 的默認值爲1200。

若使用 -GP 而不是 -Gp,則圖案會發生位反轉,即白色區域變成黑色,黑色區域變成白色(僅對1位位圖或GMT預定義位圖圖案有效)。

對於GMT預定義的圖案以及用戶自定義的1位位圖來說,可以用 +bcolor+fcolor 分別設置圖案的前景色和背景色,以分別替換默認的黑色和白色像素點。若只給 +b+f 而不指定顏色,則視爲前景色或背景色爲透明。

注解

  1. 使用的光柵圖片必須小於146x146像素;若要使用更大的圖像,需要使用 image 模塊
  2. 若GMT在編譯時鏈接了GDAL,則也可以使用其他格式的圖片作爲填充圖案
  3. 圖案填充是通過使用多邊形做路徑裁剪實現的。複雜的裁剪路徑會需要更多的內存,因而可能導致某些PS解釋器由於內存不足而退出。在這種情況下,建議使用灰度填充區域

小練習

下面使用 plot 模塊在底圖中心繪製了一個直徑爲4釐米的圓,並填充顏色:

echo 5 5 | gmt plot -JX10c/10c -R0/10/0/10 -Baf -Sc4c -Gfill -pdf test

請嘗試將命令中的 -Gfill 中的 fill 修改爲以下不同的值並查看效果以理解這一節的內容:

  • -G128
  • -G127/255/0
  • -G#00ff00
  • -G25-0.86-0.82
  • -GDarkOliveGreen1
  • -Gp7+r300
  • -Gp12+r300
  • -Gp7+r1000
  • -GP7+r1000
  • -Gp7+bred+r300
  • -Gp7+bred+f-+r300

附錄: GMT預定義填充圖案

下圖列出了GMT中預定義的90種位圖圖案(右鍵查看大圖並放大才能看到差異),所有圖案都是使用默認的黑白色在 <dpi> 取300的環境下生成的。每張小圖中左半部分使用 -Gp 繪製,右半部分使用 -GP 繪製。

../_images/GMT_patterns.png

GMT內置位圖圖案

下載: PDF格式 | PNG格式