【问题标题】:plot cpt.var: Use values from dataframe for axisplot cpt.var:使用数据框中的值作为轴
【发布时间】:2016-09-22 14:08:08
【问题描述】:

当我尝试使用 changepoint 包中的 cpt.var 绘制 changepoint 分析的结果时,x 轴上的结果值是从 0 开始的整数,而不是我的数据帧中的值(它们是结合年和星期)。当我只是从我的数据框中绘制数据时,x 轴是正确的,但是在绘制 cpt.var 的结果时,我的 x 值消失了

我在网上搜索了答案,但找不到解决方案。我希望有人可以帮助我。

语法比下面的示例更复杂,但归结为相同的问题:使用plot(df, type="l") 绘制 数据框 在 x 轴上返回正确的值,绘制 变化点分析使用plot(vvalue) 不会。

library(changepoint)
df <- read.table(header=TRUE,text = 
                   "YEAR_WEEK N 
200801 12
200802 5
200803 0
200804 6
200805 0
200806 0
200807 4
200808 5
200809 3
200810 25
200811 36
200812 5
200813 2

         ")

vvalue <- cpt.var(df$N, method = "PELT", penalty = "BIC")
plot(vvalue)

【问题讨论】:

    标签: r plot axis


    【解决方案1】:
    plot(vvalue, xaxt = "n")
    axis(1, at=1:13, labels=df[,1])
    

    【讨论】:

    • 感谢您的解决方案。这适用于“固定”刻度,但是当我尝试更通用的方法时,例如 axis(1, at=df$YEAR_WEEK, labels=df$YEAR_WEEK) 它根本不会在图中返回任何值。您也有解决方案吗?
    • 更通用的解决方案是:plot(vvalue, xaxt = "n"); axis(1, at=seq(1:length(df$YEAR_WEEK)), labels=df$YEAR_WEEK)
    • 最后一个问题:如果我使用 at=seq(1,length(df$YEAR_WEEK), by=25) 调整 x 轴上的刻度数,我会得到(明显的)错误:' at' 和 'labels' 的长度不同。如何解决?
    猜你喜欢
    • 2014-08-13
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2017-07-18
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多