18

解像度が軸ラベルの解像度に匹敵するように、geom_text の解像度を改善する方法に関する提案はありますか? ありがとう

df <- data.frame("x" = c(1,2,3,4),"y" = c(15,19,35,47))

p<-ggplot(df,aes(x,y))
p<- p + geom_point(size=1)

p<- p + geom_smooth(method="lm", se=FALSE, formula=y~x)
p<- p + xlab("Better Resolution")
p<- p +ylab("Better Resolution")

p<- p +opts(axis.title.x = theme_text(family="Times",face="bold", size=25, colour = "Black",vjust=0)) 

p<- p +opts(axis.title.y = theme_text(family="Times",face="bold", size=25, angle =90, colour ="Black",vjust=0.4))

p<- p + geom_text(aes(x = 3.5, y = 37, label ="123456789"),size=12, parse = TRUE)
p

#The zoomed in text looks like this after saving using ggsave

ここに画像の説明を入力

#Information about my version of R and OS

sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

R.version
           _                            
platform       x86_64-apple-darwin9.8.0     
arch           x86_64                       
os             darwin9.8.0                  
system         x86_64, darwin9.8.0          
status                                      
major          2                            
minor          15.1                         
year           2012                         
month          06                           
day            22                           
svn rev        59600                        
language       R                            
version.string R version 2.15.1 (2012-06-22)
nickname       Roasted Marshmallows  

##############
#The actual code I am using looks like this:

#function that creates the line equation
lm_eqn = function(df){
m = lm(y ~ x, df)
eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,
list(a = format(coef(m)[1], digits = 2),
b = format(coef(m)[2], digits = 2),
r2 = format(summary(m)$r.squared, digits = 3)))
as.character(as.expression(eq))
}


#creates basic plot and adds a line
p<-ggplot(df, aes(x,y))
p<- p + geom_point(alpha=1/10, colour="blue", size=5)

#controls background colours
p<-p + theme_bw()

#adds the labels, titles and makes them pretty

p<- p + geom_smooth(method="lm", se=FALSE, formula=y~x,colour="black")
p<- p + xlab("Species similarity for site pair (Tsim variable 'a')")
p<- p +ylab("Trait similarity for site pairs (Tsim)")
p<- p +opts(title="Species vs. Trait combination similarity 2-5m")
p<- p +opts(plot.title = theme_text(family="Times",face="bold", size=18, colour =   "Black",vjust=1)) 
p<- p +opts(axis.title.x = theme_text(family="Times",face="bold", size=15, colour = "Black",vjust=0)) 
p<- p +opts(axis.title.y = theme_text(family="Times",face="bold", size=15, angle =90, colour =  "Black",vjust=0.4))

#adds the equation
p<- p + geom_text(aes(x = 0.015, y = 0.08, label = lm_eqn(df)),size=6,  family="Times",face="italic", parse = TRUE)

ggsave(p,file="tsim.a.0-2.pdf") 
4

2 に答える 2

15

を使用して画面上のプロットを保存してみませんかggsave。画面に表示されるものは、必ずしもpdfまたはpsデバイスを使用して出力グラフィックスでレンダリングされるものではない場合があります。ggplot0.9.1を使用してWindows7でR2.15.1を使用して、編集されていないコードを使用しても問題は発生しませんでした。

を使用して画面上のプロットを保存しggsave、ズームインしました。PDFは見栄えがします。

geom_textレンダリングのズーム

使用しますggsave("plot.pdf")(epsとして保存するなど、設定できるオプションの引数は他にもいくつかあります)。これにより、最後のプロット(デフォルト)が現在の作業ディレクトリに保存されます。プロットを調べます。それでもテキストがおかしい場合は、Timesフォントのインストールに問題がある可能性があります。

この場合、フォント仕様を省略してこれを試して、Rがデフォルトのフォントファミリを選択するようにする必要があります。

また、 (現在!) のtheme代わりに、optsおよびelement_text代わりにスウィッチする必要があります。theme_text

**編集**

わかりました。kohskembaskのおかげで、ここであなたの問題の解決策を見つけたと思います。ラベルのデータフレームを作成し、この方法でgeom_textに渡すことで、明らかにより良い結果を得ることができます。

使用してみてください:

df <- data.frame("x" = c(1,2,3,4),"y" = c(15,19,35,47))

lm_eqn = function(df){
m = lm(y ~ x, df)
eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,
list(a = format(coef(m)[1], digits = 2),
b = format(coef(m)[2], digits = 2),
r2 = format(summary(m)$r.squared, digits = 3)))
as.character(as.expression(eq))
}

### NEW ###
# Create a data frame to hold your label variables
data.label <- data.frame(
x = 0.015,
y = 0.08,
label = c(lm_eqn(df))
)

#creates basic plot and adds a line
p<-ggplot(df, aes(x,y))
p<- p + geom_point(alpha=1/10, colour="blue", size=5)

#controls background colours
p<-p + theme_bw()

#adds the labels, titles and makes them pretty

p<- p + geom_smooth(method="lm", se=FALSE, formula=y~x,colour="black")
p<- p + xlab("Species similarity for site pair (Tsim variable 'a')")
p<- p +ylab("Trait similarity for site pairs (Tsim)")
p<- p +opts(title="Species vs. Trait combination similarity 2-5m")
p<- p +opts(plot.title = theme_text(family="Times",face="bold", size=18, colour =   "Black",vjust=1)) 
p<- p +opts(axis.title.x = theme_text(family="Times",face="bold", size=15, colour = "Black",vjust=0)) 
p<- p +opts(axis.title.y = theme_text(family="Times",face="bold", size=15, angle =90, colour =  "Black",vjust=0.4))

### NEW
####   Change your call to geom_text ####
p<- p + geom_text(data = data.label, aes(x = x , y = y , label = label ) , size=6,  family="Times" , face="italic" , parse = TRUE)

ggsave(p,file="tsim.a.0-2.pdf") 

私はこれをMacOSX10.7.4とR2.15.1で入手しました。

フルサイズのPDF

方程式の注釈のズーム

于 2012-07-22T06:38:23.803 に答える
3

グラフ上の単一の注釈annotate()の代わりに使用します。geom_text()そうしggplot()ないと、データ ポイントごとに同じテキストを描画しようとするため、解像度が変になります。

于 2018-08-08T12:36:27.263 に答える