2012-02-20 79 views
1
Name UP Downs 
A 10 -3 
B 2 -4 
C 1 -1 
D 4 -1 
E 5 0 
F 0 -1 
G 6 -5 
H 0 -1 
I 7 -1 
J 0 -1 
K 0 -11 
L 3 -1 
M 0 -13 
N 2 -1 
O 0 -1 
P 1 -1 
Q 0 0 
R 1 -1 
S 0 0 
T 12 -1 
..... 
......... 
.......... 
(goes all the way to 2500 rows) 

這裏是我的R代碼裏面看起來像......如何在R中格式化線條圖的x軸以便它可以匹配多個文本標籤?

nba <- read.csv("test.csv") 
plot(nba$UP, type="b", lwd=1, xaxt="n", ylim=c(-22, 22), col="red", xlab="Name", 
    ylab="Change", main="My plot") 
axis(1, at=1:length(nba$Name), labels=nba$Name) 
lines(rain$Downs, col="green", type="b", lwd=1) 

此代碼工作得很好......但是打印時x軸顯示幾個選定的「名」,而不是所有的人。問題是...有沒有一種方法來顯示xaxis中的所有文本(垂直與較小的字體),有沒有辦法當我將文件保存爲圖像...我可以放大並查看xaxis標籤...任何幫助,高度讚賞....這個論壇已經幫了我很多,所以謝謝...!

+0

我會用'par'有很多的消化有,但它的開始?非常值得你的時間。 '?pdf'可以給你第二個問題的答案。 – 2012-02-20 04:07:30

+4

你想顯示2500 xtick標籤?試着想象一下2500行的文字會是什麼樣的(更不用說將其作爲x軸標籤了),然後考慮是否需要這樣做。至於保存繪圖,R提示符中的一個簡單的'help('save plot')'產生函數'savePlot'(參見'savePlot')。 – 2012-02-20 04:07:59

回答

3

如果您更關注您真正想要繪製和標記的內容,您可能會發現分析您的情節更容易。

例如,標註具有許多觀察值的地塊的策略之一是僅標出異常值。這裏有一個例子說明如何去標記數據中最高和最低的分數。

創建一些示例數據和繪圖。

set.seed(1) 
n <- 100 
nba <- data.frame(
    obs = 1:n, 
    Name = paste("label", 1:n, sep="_"), 
    UP = sample(0:15, n, replace=TRUE), 
    Downs = sample(-15:0, n, replace=TRUE) 
) 

plot(nba$obs, nba$UP, type="b", lwd=1, ylim=c(-22, 22), col="red", 
    xlab="Name", ylab="Change", main="My plot") 

找到10個最高和最低值,並使用text添加標籤:

nups <- 10 
ups <- tail(nba[order(nba$UP), ], nups) 
with(ups, text(obs, UP+1, Name, srt=90, adj=0, cex=0.75)) 

ndowns <- 10 
downs <- head(nba[order(nba$UP), ], nups) 
with(downs, text(obs, UP-1, Name, srt=90, adj=1, cex=0.75)) 

enter image description here