【问题标题】:R Boxplot Graph--odd resultR Boxplot Graph--奇数结果
【发布时间】:2014-09-14 17:47:48
【问题描述】:

我在 R 3.1.1 中使用 boxplot 函数,我试图了解幕后发生的事情,而不是修复我的代码。

png(file = "plot1.png")
par(mfrow= c(1,2))
par(mar = c(3,4,4,1))
boxplot(emissions ~ year, col = "blue", xlab="Year", ylab ="Emissions", title = "Pm25 Emissions 1999 and 2008", bg ="white",ylim=c(0,6000))
boxplot(emissions2 ~ year2, col = "blue", xlab="Year", ylab ="Emissions", title = "Pm25 Emissions per Year", bg ="white",ylim=c(0,6000))
dev.off()

结果输出是:

在我所阅读的大多数情况下,代码应该返回一个盒子和胡须,但它返回的这种线性混乱的对齐点并不比条形图好。关于我做错了什么的任何线索?

谢谢。图片没有发布,因为我没有 10 个声望点。

上传数据集以进行自动化和临时处理的完整代码。

url = "https://d396qusza40orc.cloudfront.net/exdata%2Fdata%2FNEI_data.zip"
#######Erased to encourage the learning process...
NEI <- readRDS(mydata[2])
SCC <- readRDS(mydata[1])
year <- (NEI[,6])
emissions <-( NEI[,4])
mat <- cbind(year,emissions)
png(file = "plot1.png")
....

总结(NEI)结果:

排放
最小值:0.0
第一曲:0.0
中位数:0.0
平均值:3.4
第三曲:0.1
最大限度。 :646952.0

       year     
Min.   :1999  

第一季:2002
中位数:2005
平均:2004
第三季:2008
最大限度。 :2008

【问题讨论】:

  • 数据呢?阅读this,了解如何提供一个很好的例子,并加强你的改变以获得很好的答案。
  • 图片会有所帮助。数据本身是格式 |年份 |排放|并运行到数百万行。如果您愿意,该脚本已自动从 coursera 链接下载到临时文件并生成图像
  • 您能否提供数据摘要?数据分布似乎有问题。
  • 尝试粘贴summary()
  • 谢谢保罗。你成功了。

标签: r output boxplot


【解决方案1】:

您可能已经注意到,您的 NEI 变量严重偏斜。

library(dplyr)
nei <- as.tbl(NEI)
nei%>%
  group_by(year) %>%
  summarise(
    min = min(Emissions),
    max = max(Emissions),
    mean = mean(Emissions),
    median = median(Emissions),
    Q25 = quantile (Emissions, probs=0.25),
    Q75 = quantile (Emissions, probs=0.75)
    )

总结

Source: local data frame [4 x 7]

  year min       max     mean      median          Q25        Q75
1 1999   0  66696.32 6.615401 0.040000000 0.0100000000 0.25600000
2 2002   0 646951.97 3.317747 0.007164684 0.0005436423 0.08000000
3 2005   0  58896.10 3.182719 0.006741885 0.0005283287 0.07000000
4 2008   0  20799.70 1.752560 0.005273130 0.0003983980 0.06162755

【讨论】:

    【解决方案2】:

    boxplot 代表您的数据分布。更确切地说,它取决于您的数据分位数值。

    例如,如果你的分位数重叠,你将只有一条水平线(盒子和胡须是平的),而你的异常值是一条垂直的点线。

    您可以轻松想象您的数据分布如下示例:

    set.seed(1)
    boxplot(count ~ spray, 
            data = data.frame(count=c(rep(0,800),runif(200)),
                              spray=sample(1:2,1000,rep=TRUE)), col = "lightgray")
    

    【讨论】:

    • 你们两个搞定了...谢谢。希望其他人不会犯这个错误。
    猜你喜欢
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多