2014-03-25 127 views
2

in R scatterplot我想賦予Y軸標籤顏色並使其成爲粗體,其他部分爲斜體。我來自一個非常簡單的繪圖腳本,這裏的一切是做開始,除了使字體加粗,斜體,給它一個顏色:Scatterplot:顏色和斜體軸標籤

png("test.png", height=800, width=600, pointsize=15) 
par(mar=c(5,12,.25,1)) 
textA=seq(0,100,25) 
textB=c("start","intermediate1","intermediate2","intermediate3","stop") 
plot(c(0,runif(8),1),c(0,runif(8),1),axes=F,ylab=NA) 
axis(1) 
axis(2, at=seq(0,1,.25), labels=paste(textA,"-",textB,sep=""),las=2,cex.axis=1.5) 
dev.off() 

問:我怎樣才能讓TEXTA大膽和彩色(紅)和同時使textB只是斜體,而不是粗體,標準顏色(黑色)。

非常感謝。

回答

1

我會用axis兩個textAtextB,然後玩弄line,直到你有可接受的間距。

編輯:我不知道如何在一個標籤內有不同的顏色和字體。作爲一種解決方法,您可以使用帶變量x位置的text將兩個文本緊密放在一起。如果調整窗口大小,則可能需要調整偏移量。

par(mar=c(5,13,.25,1)) 
textA=seq(0,100,25) 
textB=c("start","intermediate1","intermediate2","intermediate3","stop") 
plot(c(0,runif(8),1),c(0,runif(8),1),axes=F,ylab=NA) 
axis(1) 

# add textA and textB 
axis(2, at=seq(0,1,.25), labels=textB, font=3, col.axis=1,las=2,cex.axis=1.5, line=1) 
text(x=c(-0.3,-0.55,-0.55,-0.55,-0.3), y=seq(0,1,.25), textA, xpd=NA, col=2, font=2, cex=1.5) 

# check which offset we need for textA: 
# abline(v=seq(-1,0,.1), xpd=NA, col=2) 
# text(,x=seq(-1,0,.1),y=rep(0,11),labels=seq(-1,0,.1),xpd=NA) 

updated result

+0

非常感謝koekenbakker尋找我的問題。這看起來很不錯,但f.e.之間的空間'0'並且開始使得外觀相當「不安」。在處理文本之前可能有辦法建立文本? – user3219379

+0

你太棒了!非常感謝!不幸的是我沒有足夠的聲望爲你投票:( – user3219379

+0

好的,你會很快擁有這個特權!如果你喜歡它,請接受答案:'要將答案標記爲已接受,請點擊答案旁邊的複選標記以切換它從灰色到滿意。「 – koekenbakker

0

我會做到這一點與ggplot2如下:

# create a dataframe 
x <- c(0,runif(8),1) 
y <- c(0,runif(8),1) 
df <- as.data.frame(cbind(x, y)) 

# loading ggplot2 package 
require(ggplot2) 

# creating the plot 
ggplot(df, aes(x=x, y=y)) + 
    geom_point(shape = 21, size = 4) + 
    scale_x_continuous("x-axis-label") + 
    scale_y_continuous("", breaks=c(0,0.25,0.50,0.75,1.00), 
        labels=c("start","intermediate1","intermediate2","intermediate3","stop")) + 
    theme_classic() + 
    theme(axis.text.x = element_text(size=14, face="italic"), 
     axis.text.y = element_text(size=14, colour = "red", face="bold"), 
     axis.title.x = element_text(vjust=-1)) 

結果:

enter image description here

+0

夏侯感謝爲尋找到這一點;實際上我的觀點有些不同:它只涉及Y軸,它由兩部分組成(textA和textB),它們通過粘貼連接起來;第一部分應該是粗體和有色(紅色),第二部分(textB)只是斜體。最終可能有沒有粘貼的解決方案; idont知道如何將這些獨立的設置賦予'軸'。 Thx爲了您的理解。 – user3219379