2011-06-28 5 views
-3

フィンランドの森林地図をRで印刷しようとしています。地図はきれいに描画されますが、凡例の数字の一部は全長では表示されませんが、 3e + 06。Rの凡例の値がNe + nの形式に短縮されました

これは、凡例の行のサイズが長すぎる場合に発生するようです。これは、一部のユーザーにとっては問題である可能性があります。

私は完全な数字を表示するように変更する方法を探していました。この問題を解決するためのアイデアは、私が数日間にわたってこれと戦ってきたことに感謝します。以下のソース。

library(maptools) 
library(RColorBrewer) 
library(classInt) 
Sys.setlocale(category = 'LC_ALL', locale = '[email protected]') 

png(file="tupatmp/950fi_4.png", height=600, width=600, res=100) 

basemap <- readShapePoly("shp/metsakeskus.shp",IDvar="mknro_1") 
xx <- basemap[basemap$att.data$mknro_1 %in% c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14)] 
csv <- read.csv("tupatmp/950fi.csv") 
plotvar <- csv$k_4 
nclr <- 8 
plotclr <- brewer.pal(nclr,"RdYlGn") 

options(digits = 10) 
class <- classIntervals(plotvar, 
         nclr, 
         style="fixed", 
         fixedBreaks=c(0,5000,10000,15000,20000,250000,3000000,3500000,40000000)) 
colcode <- findColours(class, plotclr,digits = getOption(digits)) 
plot(xx,col=colcode) 

par(family="sans") 
par(mgp = c(0,1,0)) 

title(main = "Nettotulojen nykyarvon maksimointi 5% korkokannalla 2037 
Ahvenanmaa, Lounais-Suomi, Häme-Uusimaa, Kaakkois-Suomi, Pirkanmaa, Etelä-Savo, Etelä-Pohjanmaa, Keski-Suomi, Pohjois-Savo, Pohjois-Karjala, Kainuu, Pohjois-Pohjanmaa, Lappi, Rannikko (pohjanmaa), Rannikko (etelärannikko)", 
     sub = "Kantohinta-arvo Käytönrajoitus: Puuntuotannon ulkopuolella", 
     font.main=2,cex.main=0.9,cex.sub=0.9) 

legend(2730000,7315000, 
     title="1000eur",legend=names(attr(colcode,"table")), 
     fill=attr(colcode,"palette"), 
     border="black", cex=0.8,bty="o", xpd="FALSE") 
dev.off() 
+2

私たちはシェイプファイルを持っていないので、あなたの例は再現できません。将来再現可能な例を提供してください。 –

答えて

2

代わりdigitsをOD正の数にscipenオプションを設定してみてください。「

opts <- options(scipen = 10) 

を私たちはドンので、あなたのコードが動作しないよう、この問題を解決するかどうかを確認することは困難ですシェイプファイルがあります。

3

は、私は、コードを迅速に実行を行ってきた:実際の変換は、この行で行われるように表示されます。

のNRE < - (のtableClassIntervalsのコードで

- 文字(1ルクス) classInt)。この機能をチェックすると、単にdigits引数が無視されます。これをパッケージ作成者に伝えたいかもしれません。

まだ:@ Gavin氏によると、再現性が良いと言われています。