劉 凡,喬俊軍,胡馮偉,2
(1.武漢大學 測繪學院,湖北 武漢 430079;2.浙江省測繪科學技術(shù)研究院,浙江 杭州 310012)
專題地圖是一種著重表達一種或者幾種制圖要素的地圖,是分析和展示自然要素、國民經(jīng)濟指標的一種重要手段[1]。專題地圖的信息包含了空間分布相關(guān)的地理信息和專題統(tǒng)計信息,GIS軟件可以很好的在地理底圖上展示空間分布數(shù)據(jù),而矢量繪圖軟件依靠其強大的美化設(shè)計功能可以通過圖表、圖片等形式更好地展示專題統(tǒng)計數(shù)據(jù)[2-4]。
專題地圖中統(tǒng)計數(shù)據(jù)的可視化表達方法有3種:分級統(tǒng)計圖法、分區(qū)統(tǒng)計圖表法、定位統(tǒng)計圖表法,本文主要討論定位統(tǒng)計圖表法,它是一種定位于地圖要素分布范圍內(nèi)、以同類型的統(tǒng)計圖表表示范圍內(nèi)地圖要素數(shù)量、內(nèi)部結(jié)構(gòu)或周期性數(shù)量變化的方法。這種表示方法主要反映周期性現(xiàn)象的特征,如溫度與降水量的年變化,潮汐的半月變化,相對濕度,沿河流線上各水文站的水文圖表等。
目前,在專題地圖中生成定位統(tǒng)計圖表有兩種方法,一是根據(jù)統(tǒng)計數(shù)據(jù)計算柱體的長度、扇形角度等,人工繪制,效率比較低下,并且容易出錯。二是借助Excel軟件的自動繪圖功能生成圖表,然后復(fù)制到制圖軟件中進行加工修改,過程比較繁瑣,并且曲線變齒,不易修改;圖表大小,不易控制,失去可比性。這兩種方法都不利于統(tǒng)計圖表的制作,也不適合統(tǒng)計數(shù)據(jù)的規(guī)?;幚?,影響了定位統(tǒng)計地圖的設(shè)計水平和制作效率[5]。為此,在深入分析統(tǒng)計圖表的多維分類和定位模型基礎(chǔ)上,本文以CorelDRAW作為實驗平臺,使用VBA編程語言進行二次開發(fā),程序化地實現(xiàn)了直方圖、柱狀圖、扇形圖、餅狀圖和玫瑰圖等多種定位統(tǒng)計圖表的自動定位和構(gòu)建,對提高定位統(tǒng)計地圖的設(shè)計水平和制作效率具有現(xiàn)實意義。
定位統(tǒng)計圖表的圖形和組合形式復(fù)雜多樣,本文選取了直方圖、柱狀圖、扇形圖、餅狀圖、玫瑰圖進行研究。
完整的統(tǒng)計圖表由定位參數(shù)和繪圖參數(shù)兩部分構(gòu)成,其中定位參數(shù)決定了圖表的位置如下:
式中,F(xiàn)代表定位統(tǒng)計圖表,F(xiàn)1代表定位參數(shù),F(xiàn)2代表繪圖參數(shù)。
定位統(tǒng)計圖表根據(jù)坐標系分為三類。
1)一維極坐標系:如扇形圖、環(huán)狀圖、餅狀圖和玫瑰圖,繪圖制圖參數(shù)有扇形的顏色、方向和面積等。此類圖表的定位參數(shù)表示如下:
式中,X、Y分別為圓心的橫縱坐標值,R1、R2分別為基礎(chǔ)橢圓的長半徑和短半徑,若是正圓則相等。
2)二維直角坐標系:如直方圖、折線圖、散點圖等。繪圖參數(shù)有矩形的寬度和高度、折線的線寬等。此類圖表的定位參數(shù)表示如下:
式中,X、Y分別為坐標系左下角點在制圖平面中的橫縱坐標值,L1、L2分別為橫軸、縱軸的長度。
3)三維直角坐標系:三維圖表能夠更加立體直觀地表現(xiàn)統(tǒng)計數(shù)據(jù),圖表類型有圓柱圖、方柱圖等,繪圖參數(shù)有圖形單元的尺寸和排列方式等。此類定位統(tǒng)計圖表的定位參數(shù)表示如下:
式中,X、Y分別為坐標系原點在制圖平面中的橫縱坐標值,L1、L2、L3分別為三條坐標軸的長度,α為制圖平面中X軸與Y軸的夾角。
用戶對定位圖元、定位類型、定位參數(shù)進行設(shè)置可以將圖表定位在指定范圍內(nèi);用戶可以任意選擇坐標軸的正方向,設(shè)置刻度間隔、起始刻度、終止刻度;扇形圖、餅狀圖可以按用戶設(shè)置的距離拉開,讓數(shù)據(jù)更清晰地表現(xiàn)在統(tǒng)計地圖上。
系統(tǒng)根據(jù)制圖流程分為3個模塊:數(shù)據(jù)讀取模塊、圖表定位模塊、圖表構(gòu)建模塊。
系統(tǒng)通過讀取Excel文件,允許用戶自由選擇表格和字段來確定參與繪圖的統(tǒng)計數(shù)據(jù)。用戶在制圖軟件中選取定位圖元以后,通過設(shè)置定位模型和定位參數(shù)完成圖表的定位,再按照圖表類型設(shè)置合適的繪圖參數(shù),最后完成定位統(tǒng)計圖表的構(gòu)建,如圖1所示。
圖1 程序設(shè)計流程圖Fig.1 Flow chart of program designing
定位統(tǒng)計地圖是用統(tǒng)計圖表反映制圖區(qū)域中某些點、線、面上現(xiàn)象的數(shù)量特征和變化的地圖。根據(jù)圖表的位置,定位統(tǒng)計圖表可以分為圖外定位和圖內(nèi)定位。圖內(nèi)定位側(cè)重用圖表中不同的視覺變量反映行政區(qū)域或者經(jīng)濟區(qū)域之間的指標差異,加強對比;圖外定位用圖表形式表現(xiàn)整個制圖區(qū)域的整體統(tǒng)計指標。根據(jù)定位圖元的幾何類型,又可以分為典型(點)定位、均勻(線)定位和圖外(面)定位。
定位統(tǒng)計圖表自動繪制系統(tǒng)中,用戶在制圖軟件中選取定位圖元以后,在選擇定位模型類型的點擊事件中,程序通過Activeselection類返回選取的定位圖元,然后根據(jù)定位模型計算定位參數(shù)[6-7]。
典型定位,即最典型的點定位,常用于表現(xiàn)具體地理位置上的周期性現(xiàn)象,如水文站的水位、流速信息,氣象站的風向、風速信息,城市的降水、溫度信息。適用的圖表類型有直方圖、扇形圖、餅狀圖和玫瑰圖。
典型定位中,定位圖元是一個零維度的點,程序讀取定位圖元的CenterX和CenterY函數(shù)值計算為定位參數(shù)。
對于具有二維直角坐標系的直方圖、折線圖,定位圖元位于坐標系底邊的中點,定位參數(shù)計算如下:
對于具有極坐標系的扇形圖、餅狀圖和玫瑰圖,定位參數(shù)計算如下:
式(5)、式(6)中,s為定位圖元量,CenterX、CenterY分別為求圖元外包矩形中心點橫、縱坐標值的函數(shù)。
均勻定位選取制圖區(qū)域上多個分布均勻的典型點位,如經(jīng)緯線交點、坐標格網(wǎng)的交點,以此來反映周期性現(xiàn)象在整個制圖區(qū)域上的分布和變化。均勻定位模型中以多條相交的曲線作為定位圖元,圖表的錨點分別配置在對應(yīng)地理曲線交點上。適用的圖表類型有直方圖、扇形圖、餅狀圖、風向玫瑰圖和風速玫瑰圖。
式中,φ為緯線和格網(wǎng)橫線,λ為經(jīng)線和格網(wǎng)縱線,f1、f2為求兩條曲線交點的橫、縱坐標值的函數(shù)。
均勻定位模型中,首先對定位圖元中的曲線分類,按照SizeWidth和SizeHeight屬性大小分為橫線和縱線兩組,按從上到下、從左到右順序依次遍歷兩組圖元,然后判斷橫線和縱線的外包矩形是否相交,外包矩形重疊才可能有交點;若圖元的外包矩形相互重疊則使用修剪函數(shù),遍歷修剪后曲線的所有節(jié)點并用函數(shù)IsOnCurve判斷節(jié)點是否在定位線上,若同時在橫線和縱線上則該節(jié)點就是曲線的交點,流程圖如圖2所示。
圖2 均勻定位流程圖Fig.2 Flow chart of evenly location
圖外定位側(cè)重于用圖表形式表現(xiàn)制圖區(qū)域的整體統(tǒng)計指標,根據(jù)鄰區(qū)的大小、形狀和位置來配置圖表位置。適用的圖表類型有直方圖、折線圖和柱狀圖。
圖外定位模型中最常見的定位圖元是四邊形,對于具有二維坐標系的統(tǒng)計圖,如直方圖、折線圖等,坐標系組成的四邊形即與定位圖元重合。
式中,s為定位圖元,LeftX、BottomY分別為求圖元左邊緣的橫坐標值、底部縱坐標值的函數(shù),SizeWidth、SizeHeight分別為求圖元外包矩形的長度和高度的函數(shù)。
三維直角坐標系只有X、Y軸組成的底面位于專題圖平面上,所以定位圖元與坐標系底面重合。坐標原點定位在定位圖元左上角的折點,X、Y軸分別與平行四邊的長邊和短邊重合,坐標系傾斜角取平行四邊形最大的內(nèi)角。
式中,s是定位圖元,Ox、Oy分別為求四邊形左上角點的橫、縱坐標值的函數(shù),XLength、YLength分別為求四邊形長邊、短邊的函數(shù),MaxAngle為求四邊形最大內(nèi)角的函數(shù)。
圖外定位模型中,首判定定位圖元的形狀類型是否為曲線,若不是曲線則先轉(zhuǎn)為曲線,然后遍歷曲線的節(jié)點讀取坐標值,計算定位參數(shù)。
根據(jù)式(1),統(tǒng)計圖表由定位參數(shù)和繪圖參數(shù)兩部分構(gòu)成,幾何定位模塊已經(jīng)確定了圖表的定位參數(shù),圖表構(gòu)建還需用戶設(shè)置繪圖參數(shù)才能完成。本文以5種常見的圖表:直方圖、柱狀圖、扇形圖、餅狀圖、玫瑰圖來闡述圖表構(gòu)建的具體過程。
直方圖利用矩形圖元的高度來描述單一指標,矩形的排列方式有平鋪和累積兩種。直方圖的定位參數(shù):坐標系左下角點的坐標值(X,Y),橫縱軸長度L1和L2確定以后,用戶需要設(shè)置繪圖參數(shù):起始刻度、終止刻度、刻度間隔、矩形寬度、組內(nèi)排列方式、坐標軸方向、橫坐標和數(shù)據(jù)的配置位置,若是平鋪圖還需設(shè)置組內(nèi)間隔,主要繪制步驟如下:
1)計算X軸所在位置:若起始刻度和終止刻度均為正數(shù)時,從最小刻度處開始向上繪制矩形,X軸與最小刻度線重合;否則從零刻度處開始繪制矩形圖元,X軸與零刻度線重合。
以Y軸正方向向上為例,X軸位置:
式中,Kmax為是終止刻度,Kmin為起始刻度,y0為X軸的縱坐標值,k0為X軸對應(yīng)的刻度值。
2)坐標系繪制:直角坐標系由坐標軸和刻度線構(gòu)成,根據(jù)計算的X軸位置和Y軸方向,繪制兩條垂直的線段完成。然后計算刻度線的位置并繪制虛線,以Y軸正方向向上為例,第i條刻度線位置:
式中,K為刻度間隔。
3)計算矩形圖元的錨點位置:以Y軸正方向向上為例,錨點位于矩形圖元底部的中心。假設(shè)有m組數(shù)據(jù),每組數(shù)據(jù)有n個指標,第i組第j個矩形圖元的錨點坐標:
平鋪:
累積:
式中,ai,k為第i組第k個數(shù)據(jù),w為矩形寬度,v為組內(nèi)間隔。
4)計算矩形圖元的高度,第i組第j個矩形圖元的高度:
以均勻定位為例,選取經(jīng)緯線作為定位圖元,圖表依次配置在經(jīng)緯線交點處,實驗結(jié)果如圖3所示。
圖3 直方圖Fig.3 Histogram
相比直方圖,柱狀圖的定位參數(shù)增加了坐標系傾斜角,即X軸與Y軸的夾角。柱狀圖的基礎(chǔ)圖元有圓柱和方柱兩種,圓柱需設(shè)置底部橢圓的長短半徑,方柱需設(shè)置底部四邊形的長度。繪制步驟與二維直方圖相似,僅圖元的錨點坐標計算不同,公式如下:
平鋪:
累積:
式中,r1為圓柱底部橢圓的長半徑,為方柱底部四邊形的長,v為組內(nèi)圓柱或方柱間的距離,ai,k為第i組第j個數(shù)據(jù),α為X軸與Y軸的夾角。
以圖外定位為例,選取平行四邊形作為定位圖元,實驗結(jié)果如圖4所示。
圖4 柱狀圖Fig.4 Bar chart
扇形圖用正圓表示全部數(shù)據(jù),以各個扇形的面積大小代表各部分占總數(shù)的百分比。扇形圖既能對比各部分之間的差異,也能反映局部與整體的關(guān)系。扇形圖只能表示一個數(shù)據(jù)系列,不能同時表示多系列數(shù)據(jù)。
1)首先對制圖數(shù)據(jù)的占比進行統(tǒng)計,若有n組數(shù)據(jù),第j個數(shù)據(jù)aj占總數(shù)的比例:
2)從12點鐘方向起,按順時針方向,計算每個扇形圖元的起始角度和終止角度:
式中,αj、βj分別為第j個扇形圖元的起始角度和終止角度。
以典型定位為例,選取湖北省內(nèi)的氣象站點作為定位圖元,具體結(jié)果如圖5所示。
餅狀圖是扇形圖的立體化表達,制圖參數(shù)增加了餅高這一參數(shù)。圖表構(gòu)建過程中,圖形單元由正圓的扇形變成橢圓扇形,然后進行立體化。圖元構(gòu)建完成以后還需對順序進行調(diào)整。由于是按照數(shù)據(jù)排列順序進行構(gòu)建,終止角度在270°至360°的圖元會對終止角度在180°至270°的圖元產(chǎn)生壓蓋,造成視覺邏輯錯誤。為避免錯誤壓蓋,圖元構(gòu)建完成以后對所有終止角度在180°至360°的圖元進行逆序排列,并將終止角度在0°至180°的圖元調(diào)整到該圖層頂部。以典型定位為例,選取湖北省內(nèi)氣象站點作為定位圖元,具體結(jié)果如圖6所示。
圖6 餅狀圖Fig.6 Pie chart
玫瑰圖是依據(jù)某地一段時間內(nèi)的氣象統(tǒng)計資料,在極坐標系上繪制風向、風速的平均分布狀況,在風能資源評價、氣候與環(huán)境評估、化學倉庫及核電站選址、機場建設(shè)、城市規(guī)劃設(shè)計、高層建筑物設(shè)計等領(lǐng)域應(yīng)用廣泛。一般多用8個或者16個羅盤方位表示,各個風向上的線段長短表示從外部吹向該風向的頻率大小或者風速大小[8-9]。
風有三要素:風向、風頻、風速,玫瑰圖按其所表達的要素,分為風向玫瑰圖、風速玫瑰圖和風頻風速玫瑰圖3種[10-11]。表達各風向出現(xiàn)頻率的統(tǒng)計圖,就是風向玫瑰圖;表達各風向上平均風速、最大風速或最小風速的統(tǒng)計圖,就是風速玫瑰圖;若將各個方向上風頻的線段按不同風速出現(xiàn)的頻率繪制成不同顏色的分線段,表示出各風向上的不同風速出現(xiàn)的頻率,此類復(fù)合統(tǒng)計圖是風頻風速玫瑰圖。由于風頻風速玫瑰圖構(gòu)建過程包括了前兩種的主要計算過程,所以本文主要介紹風頻風速玫瑰圖的構(gòu)建過程。
1)坐標系繪制:玫瑰圖的坐標系由半徑不等的同心圓構(gòu)成,由小到大同心圓的半徑計算如下:
式中:c為同心圓個數(shù),R為最大圓半徑,r為最小圓半徑。
2)根據(jù)各個風向的頻率大小,按相應(yīng)的比例計算其線段長度:
式中,ai,0為i方向上的風向頻率。
3)假設(shè)有m個方向上n級風速的數(shù)據(jù),根據(jù)各個風向上的各級風速出現(xiàn)的次數(shù),第i個風向上的j級風速對應(yīng)的線段長度:
式中,ai,k為i方向上k級風速出現(xiàn)的次數(shù)。
4)各級風速的頻率以不同顏色的扇區(qū)表示,扇區(qū)是以同圓心角的小扇形對大扇形修剪得到曲線,計算扇區(qū)的半徑和角度:
式中,ri,j、Ri,j分別為第i個方向上第j個扇區(qū)的內(nèi)半徑和外半徑,αj、βj分別為扇區(qū)的起始角度和終止角度。
以典型定位為例,選取湖北省各氣象站點作為定位圖元,具體結(jié)果如圖7所示。
圖7 風頻風速玫瑰圖Fig.7 Rose chart of wind frequency and speed
本文從理論、技術(shù)、應(yīng)用3個層面對定位統(tǒng)計圖表的多維定位與自動構(gòu)建進行了探究。在理論研究層面,歸納和總結(jié)了定位統(tǒng)計圖表的數(shù)學模型;從坐標系這一角度對定位統(tǒng)計圖表進行了多維分類;從統(tǒng)計圖表的定位方法中抽象出定位圖元的幾何類型。在技術(shù)實現(xiàn)層面,詳盡地闡述了定位統(tǒng)計地圖的數(shù)據(jù)讀取模塊、圖表定位模塊、圖表構(gòu)建模塊的功能作用和制圖設(shè)計過程,程序化地實現(xiàn)了統(tǒng)計圖表的定位和自動構(gòu)建。在實際應(yīng)用層面,極大地方便了用戶對定位統(tǒng)計地圖的設(shè)計要求,提高了定位統(tǒng)計圖表的設(shè)計水平和制作效率。