[英]Add comma separator to axis labels
我有以下示例,其中我嘗試向大於999(即1,000 2,000 3,000 ...)的數字添加逗號分隔符
#Dummy data
Data1 <- data.frame(flow = c(8000,8.5,6,7.1,9), SP_elev = c(20,11,5,25,50))
Data2 <- data.frame(flow = c(7000,7.2,6.5,8.2,8.5), SP_elev = c(13,15,18,25,19))
Data3 <- data.frame(flow = c(2000,3,5,7,9), SP_elev = c(20,25,28,30,35))
Data4 <- data.frame(flow = c(1000,4,6,8,9), SP_elev = c(13,15,18,25,19))
Data5 <- data.frame(flow = c(1000,4,6,8,9), SP_elev = c(13,15,18,25,19))
Data6 <- data.frame(flow = c(1000,4,6,8,9), SP_elev = c(22,23,25,27,29))
#Create Vector list (in place of list.files)
dataframes = list("Data1" = Data1,
"Data2" = Data2,
"Data3" = Data3,
"Data4" = Data4,
"Data5" = Data5,
"Data6" = Data6)
# open the PDF device
pdf(file="Dummy_Example.pdf", paper="letter", height=10, width=8)
#Create array of plots
par(mfrow=c(3,2))
#plot a with regression model
for (i in dataframes) {
plot (i[,c('flow', 'SP_elev')], xlab=expression(paste("Discharge (", ft^3, "/s)",sep = "")), ylab= "Elevation (m)", tck=0.02, adj = 0.5)
axis(side=1, at=axTicks(1), labels=formatC(axTicks(1), format="d", big.mark=','))
}
# close the PDF device
dev.off()
x軸標簽在輸出PDF上繪制了兩次。 上面代碼中的axis
命令在哪里出錯?
#Dummy data
Data1 <- data.frame(flow = c(8000,8.5,6,7.1,9), SP_elev = c(20,11,5,25,50))
Data2 <- data.frame(flow = c(7000,7.2,6.5,8.2,8.5), SP_elev = c(13,15,18,25,19))
Data3 <- data.frame(flow = c(2000,3,5,7,9), SP_elev = c(20,25,28,30,35))
Data4 <- data.frame(flow = c(1000,4,6,8,9), SP_elev = c(13,15,18,25,19))
Data5 <- data.frame(flow = c(1000,4,6,8,9), SP_elev = c(13,15,18,25,19))
Data6 <- data.frame(flow = c(1000,4,6,8,9), SP_elev = c(22,23,25,27,29))
#Create Vector list (in place of list.files)
dataframes = list("Data1" = Data1,
"Data2" = Data2,
"Data3" = Data3,
"Data4" = Data4,
"Data5" = Data5,
"Data6" = Data6)
# open the PDF device
pdf(file="Dummy_Example.pdf", paper="letter", height=10, width=8)
#Create array of plots
par(mfrow=c(3,2))
#plot a with regression model
for (i in dataframes) {
plot (i[,c('flow', 'SP_elev')], xlab=expression(paste("Discharge (", ft^3, "/s)",sep = "")), ylab= "Elevation (m)", tck=0.02, adj = 0.5, xaxt='n')
axis(side=1, at=axTicks(1), labels=formatC(axTicks(1), big.mark=','))
}
# close the PDF device
dev.off()
為了使軸標簽不會出現兩次,需要將xaxt='n'
添加到plot
功能中。 在for循環中調用axis
時,將格式化並繪制軸標簽。
該塊將從以下位置開始:
for (i in dataframes) {
與調用多少時間axis()
有關系嗎?
我建議改行:
axis(side=1, at=axTicks(1), labels=formatC(axTicks(1), format="d", big.mark=','))
在for循環之外,如下所示:
for (i in dataframes)
{
plot (i[,c('flow', 'SP_elev')], xlab=expression(paste("Discharge (", ft^3, "/s)",sep = "")), ylab= "Elevation m)", tck=0.02, adj = 0.5)
}
axis(side=1, at=axTicks(1), labels=formatC(axTicks(1), format="d", big.mark=','))
另外,您可以嘗試在對plot()的其他調用中調用argumnent axes = F,以抑制x軸的多次繪制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.