2013-03-06 34 views
0

考慮以下最小例如:控制百分比軸和添加值以HH李克特情節

tab = structure(c(187, 189, 205, 167, 273, 275, 295, 231, 385, 575, 
409, 363, 899, 707, 751, 667, 2007, 1953, 2101, 2531, 1043, 1023, 
1071, 971, 385, 575, 409, 363, 181, 241, 157, 163, 123, 163, 
133, 131), .Dim = c(4L, 9L), .Dimnames = list(NULL, c("-4", "-3", 
"-2", "-1", "0", "1", "2", "3", "4"))) 

基質tab包含9點Likert量表的計數。

一個基本的情節很容易產生:

likert(tab, 
      auto.key=list(between=0.5, between.columns=1), 
      main="Attitudes", 
      BrewerPaletteName="RdBu",as.percent=TRUE, rightAxisLabels=NULL, 
      rightAxis=NULL, ylab.right="") 

而且它看起來不錯。現在,問題:

  • 我想控制百分比軸的增量。在某些情況下,對於其他計數,它只顯示50%。我想強制執行10%的增量
  • 我想將%count添加爲標籤。最重要的是0類。就像在Excel中一樣,你右鍵點擊並說「添加數據標籤」。必須有類似的東西。

我也認爲ggplot,但是,它不支持分歧的情節。加上標籤也相當混亂,特別是對於tikz出口。

編輯 我試過使用panel.text。但是,我仍然沒有正確地得到數字。

#does not work right! 
trellis.focus("toplevel") 
for(pp in 1:nrow(tab)){ 
panel.text(0.5, (pp/nrow(tab))*0.84+0.16, tab[pp,5], cex = 1, font = 2) 
} 
trellis.unfocus() 

如何在每個欄中找到正確的位置?

回答

1

要更改x軸值,你應該添加參數scales=並添加at=參數爲x軸。

likert(tab, 
     auto.key=list(between=0.5, between.columns=1), 
     main="Attitudes", 
     BrewerPaletteName="RdBu",as.percent=TRUE, rightAxisLabels=NULL, 
     rightAxis=NULL, ylab.right="", 
     scales=list(
     x=list(
      at=seq(-50,50,10)))) 
+0

太棒了!任務一完成,它就像一個魅力。關於價值標籤的任何想法? – Inferrator 2013-03-06 20:17:10

+0

@ user1216731你想要這樣的fir標籤嗎,'scale = list( x = list( labels = paste(seq(-50,50,10),'%',sep =''), at = SEQ(-50,50,10))))'? – agstudy 2013-03-06 21:03:44

+0

@agstudy很棒,現在甚至有%符號。謝謝!我仍然想念的是爲酒吧添加標籤,即在第一個酒吧的0份份額上放42%。 – Inferrator 2013-03-06 22:46:12