我的问题与this问题非常相似,但我希望在x轴上写出特殊值 我有以下代码:
x < - c(1:12)
y&lt; -c(1:12)
filled.contour(c(2,4,7,10,14,21,30,60,90,120,180,365),y,outer(x,y))
给出以下图:
我的问题是我不希望在左边挤压绘图,但希望c(2,4,7,10,14,21,30,60,90,120,180,365)
中的所有值在x轴上等间距。
我该怎么做?
作为扩展,如何在x轴上放置字符"two"
,"four"
,...而不是2,4,...?
由于
答案 0 :(得分:2)
这是一个开始:
x <- 1:12
y <- 1:12
xvals <- c(2,4,7,10,14,21,30,60,90,120,180,365)
fx <- as.numeric(as.factor(xvals))
filled.contour(fx, y, outer(x,y),
plot.axes= {
axis(2) ## plain
axis(1,at=fx,labels=xvals)
})
但是,您可以看到'180'标签已经被省略,这意味着如果您将x轴标签翻译成单词会更糟糕(你真的想要读取最后一个标签) “三百六十五”)? (您可以使用par(las=3)
将标签垂直转换,但这也很难看。)
This question将我们指向qdap::replace_number()
,但它似乎不适用于一位数字......
library(qdap)
filled.contour(fx, y, outer(x,y),
plot.axes= {
axis(2) ## plain
axis(1,at=fx,labels=replace_number(xvals))
})
更新:the qdap maintainer has already fixed this bug;如果您需要最新版本,可以尝试devtools::install_github("qdap","trinker")
如果你匆忙,你可以手工修复结果。