【问题标题】:How can I change the scale, min, and max of my x and y axes in r? [closed]如何更改 r 中 x 和 y 轴的比例、最小值和最大值? [关闭]
【发布时间】:2017-03-17 16:37:48
【问题描述】:

我似乎无法弄清楚将 x 轴和 y 轴从 200 到 800 以 100 为增量更改的命令。(R 新手,不知道如何提供大量数据)

     SAT <- read.csv(file.choose(), header = TRUE)
    SAT2 <- na.exclude(SAT)
    SAT.MV <- SAT2[,1:2]
    plot(SAT.MV$VSAT,SAT.MV$MSAT,main="Math and Verbal SAT Scores",xlab="Verbal Score",
ylab="Math Score")
    head(SAT.MV)
    SAT.MV.3means <- kmeans(SAT.MV,centers=3)
    SAT.MV.3means$centers
    SAT.MV.3means$cluster
    plot(SAT.MV[SAT.MV.3means$cluster == 1, ], col = "red", 
         xlim=c(min(SAT.MV[ ,1]),max(SAT.MV[ ,1])),
         ylim=c(min(SAT.MV[ ,2]),max(SAT.MV[ ,2])))
    points(SAT.MV[SAT.MV.3means$cluster == 2,], col = "blue")
    points(SAT.MV[SAT.MV.3means$cluster == 3,], col = "seagreen")
    points(SAT.MV.3means$centers,pch=2, col = "black")
            plot(SAT.MV[SAT.MV.3means$cluster == 1, ], col = "red", 
             xlim=c(min(SAT.MV[ ,1]),max(SAT.MV[ ,1])),
             ylim=c(min(SAT.MV[ ,2]),max(SAT.MV[ ,2])))
        points(SAT.MV[SAT.MV.3means$cluster == 2,], col = "blue")
        points(SAT.MV[SAT.MV.3means$cluster == 3,], col = "seagreen")
        points(SAT.MV.3means$centers,pch=2, col = "black")

【问题讨论】:

  • 您能否提供数据和/或代码,以便为我们提供reproducible example
  • 感谢您的尝试,但这仍然无法重现。我们不知道您正在阅读什么文件...如果您阅读我上面评论中的链接,您会看到“可重现的示例”通常不/不应该意味着给我们全部 您的数据 - 这意味着将您的问题归结为更简单/更短的问题,但仍能证明您的问题......
  • @BenBolker 作为一名数学学生,而不是程序员,并且只上过一门计算机科学课,我仍然不明白我应该如何为庞大的数据集编写示例代码。或者为什么当我提供了轴所需的比例时这是必要的。我只是不知道什么代码可以改变坐标轴的比例。
  • 没有可复现的例子的问题在于,它使回答者更加努力(自己编造一个,以便他们可以展示/测试他们的答案是否有效),而缺乏可复现的例子通常会掩盖你的问题模棱两可。在这种情况下这可能不是真的,但这就是为什么有经验的 SO 用户会如此强烈地坚持要获得一个可重现的例子。

标签: r plot axes


【解决方案1】:

假设我有一个小数据集:

dd <- data.frame(x=c(300,700,1000),y=c(-100,200,700))

我想在一组可能与数据比例不匹配的比例上绘制这些数据(也就是说,R 的自动规则可能无法按我的意愿工作)。

## xlim, ylim set bounds: axes=FALSE turns off axes
plot(y~x,data=dd,xlim=c(200,800),ylim=c(200,800),axes=FALSE)

现在手动绘制坐标轴:

ax <- seq(200,800,by=100)  ## same for both axes
axis(side=1,at=ax)         ## side=1 -> bottom
axis(side=2,at=ax)         ## side=2 -> left
box()  ## to draw the bounding box

在这个例子中,数据集中除了一个点之外的所有点实际上都从图中排除了:

【讨论】:

    猜你喜欢
    • 2015-05-13
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    相关资源
    最近更新 更多