我的问题与该问题非常相似,但我希望在x轴上写特殊值。
我有以下代码:
x <-c(1:12)
y <-c(1:12)
填充轮廓(c(2,4,7,10,14,21,30,60,90,120,180,365),y,外(x,y ))
给出以下情节:
我的问题是我不希望将图挤压到左侧,而是希望所有值在c(2,4,7,10,14,21,30,60,90,120,180,365)
x轴上均等分布。
我怎样才能做到这一点?
作为扩展,如何在x轴上放置字符"two"
,,"four"
...而不是2、4...。
谢谢
这是一个开始:
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)
用来将标签垂直放置,但这也很丑陋。)
这个问题将我们指向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))
})
更新:qdap维护者已经修复了这个bug ; 如果您需要最新版本,可以尝试devtools::install_github("qdap","trinker")
如果您很着急,可以手动解决结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句