【问题标题】:Contour plot x-labeling等高线图 x 标记
【发布时间】:2014-05-24 17:44:00
【问题描述】:

我的问题与this 问题非常相似,但我希望在 x 轴上写出特殊值。
我有以下代码:

x y fill.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、...?

谢谢

【问题讨论】:

    标签: r plot


    【解决方案1】:

    这是一个开始:

    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")

    如果您很着急,您可以手动修复结果。

    【讨论】:

    • 抱歉这么久。十分感谢!它有效,我写的是“yearly”而不是“365”等等。我试了一下par(las = 3),确实很丑,而且和我的 x 标签重叠。有没有办法让它对角线?我尝试了 las = 的其他值,但似乎都没有。
    • 对角线更难,但如果你环顾四周,你会发现:谷歌搜索“r 对角轴文本”得到了我的几个不错的点击,包括一些关于 SO(实际上这是一个 R FAQ
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2020-07-23
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多