2011-04-26 49 views
0

我想覆蓋barcharts頂部的錯誤條,這工作正常,除了錯誤欄自己計算,所以任何缺少的X值破壞情節。你可以在這裏看到: http://flyordie.sin.khk.be/r/asnumeric.PNGHmisc包代理怪異數字=/=字符

當我改變我的xvalues字符(as.character(xvalues))會發生以下情況: http://flyordie.sin.khk.be/r/ascharacter.PNG

的X和Y軸變化的地方。我能做些什麼呢?因爲我想不出別的什麼。

要重現了類似的問題,這裏有2個腳本

正常

set.seed(1) 
x <- 1:10 
y <- x + rnorm(10) 
delta <- runif(10) 
errbar(x, y, y + delta, y - delta) 

字符

set.seed(1) 
x <- 1:10 
y <- x + rnorm(10) 
delta <- runif(10) 
errbar(as.character(x), y, y + delta, y - delta) 

親切的問候 爵士Ksilem

+2

你可以添加一個玩具的例子,再現你的問題?我真的不知道你的意思是什麼意思,如果缺少x值,那麼woul要求你使用「as character」來繪製... – 2011-04-26 09:50:35

+0

只需一秒鐘,我上傳數據集 – 2011-04-26 09:57:27

回答

0

繪製水平誤差棒是預期行爲爲errbar()函數當參數x是因數或字符變量時,與數字相反。當你說缺少值x打破你的陰謀,我解釋你意味着打破連接點的線。要繪製錯誤條不破壞線,我會簡單地用失蹤x值刪除意見:

require(Hmisc) 

## Your example data 
set.seed(1) 
x <- 1:10 
y <- x + rnorm(10) 
delta <- runif(10) 

## Make some data vanish 
x[c(5,6)] <- NA 

## Create an index for non-missing observations in `x` 
i <- which(!is.na(x)) 

errbar(x[i], y[i], y[i] + delta[i], y[i] - delta[i], type = "b") 

編輯 每下方的評論,如果platenames只是意在你的x軸的刻度標籤,那麼以下情況如何?

require(Hmisc) 

## Your example data 
set.seed(1) 
# `x` should not contain missing values, and is not your platenames vector 
x <- 1:10 
y <- x + rnorm(10) 
delta <- runif(10) 
# xticks represents your platenames vector with missing values 
xticks <- c(1, 2, 3, 4, NA, NA, 7, 8, 9, 10) 

errbar(x, y, y + delta, y - delta, type = "b") 
axis(1, at = xticks, labels = xticks) 

但是,對於我來說,爲什麼你會觀察缺少x軸刻度標記的問題令人困惑。正如安德里所說,也許你可以澄清爲什麼一些platenames缺失,platenames是否應該是你的x值,或者它們是否只是標籤。如果他們只是標籤,也許你想要將標籤與mtext()添加到保證金:

errbar(x, y, y + delta, y - delta, type = "b") 
mtext(text = xticks, side = 3, line = 2, at = xticks) 

調整sideline?mtext左右移動的標籤。

+0

,但x值只是platenames。如果他們使用了一些盤子而沒有使用一些盤子,我無法幫助它。 – 2011-04-27 06:30:03

+1

@sir ksilem,我們在這裏和R聊天室給了你很多幫助。目前還不清楚你的問題是什麼,或者你的預期結果如何。如果您想要解決此問題,請花更多時間來完善您的原始問題並提供可重複的示例。你一直在談論缺失的x值,但「缺失」是什麼意思? NA?空值?還有別的嗎?你展示的第一張圖有什麼問題。你想成爲什麼?更具體一點,然後我們可以幫助你。 – Andrie 2011-04-27 08:51:26

+0

@Sir Ksilem,Platenames矢量是否代表'x'變量的標籤,而不代表'x'變量的值?如果是這樣,在我的編輯中使用'mtext()'能讓你更接近你所追求的? – jthetzel 2011-04-27 12:44:58