首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R ggplot2不知道如何处理类未评估的数据

R ggplot2不知道如何处理类未评估的数据
EN

Stack Overflow用户
提问于 2016-11-09 09:58:23
回答 1查看 3.1K关注 0票数 3

我知道已经有很多关于这个主题的文章,其中大多数都是由ggplot2中没有映射的变量或数据造成的。然而,在我的例子中,我确实拥有它,并在我的ggplot2中进一步使用它。

我的源是来自Power的数据集

代码语言:javascript
运行
复制
Throughput  Label  ThroughputAgegroup       
621 Assess reimbursement 1-3 Maanden
1201 Assess reimbursement 3-6 Maanden
105 Authorized 3-6 Maanden
150 Cancelled 1-3 Maanden
771 Cancelled 3-6 Maanden
4215 Closed 0-14 Dagen
57098 Closed 1-3 Maanden
14180 Closed 15-30 Dagen
26631 Closed 3-6 Maanden
14813 Closed 6-12 Maanden
52347 Closed Groter dan 12 maanden
1600 Dispatched 1-3 Maanden
58 Dispatched 15-30 Dagen
394 Dispatched 3-6 Maanden
110 Intake 1-3 Maanden
818 Ready for closure 1-3 Maanden
112 Ready for closure 3-6 Maanden

我的R情节:

代码语言:javascript
运行
复制
ggplot(dataset, aes(x=`ThroughputAgegroup`, y=`Label`))+ 
geom_point(size=10, alpha=0.5,aes(colour=`Label`), na.rm = TRUE) +
geom_text(aes(label=`Throughput`), size=3) + 
scale_colour_brewer(palette="Set1")

我想使尺寸依赖于Throughput

当我尝试运行这个:

代码语言:javascript
运行
复制
ggplot(dataset, aes(x=`ThroughputAgegroup`, y=`Label`))+ 
geom_point(aes(size=`Throughput`), alpha=0.5,aes(colour=`Label`)) +
geom_text(aes(label=`Throughput`), size=3) + 
scale_colour_brewer(palette="Set1")

我被提示为: Error:ggplot2不知道如何处理类非的数据

但我就是不明白它为什么不能去上课?

EN

回答 1

Stack Overflow用户

发布于 2018-09-06 10:39:42

正如评注所指出的那样,存在以下问题:

代码语言:javascript
运行
复制
geom_point(aes(size=`Throughput`), alpha=0.5,aes(colour=`Label`))

您需要将其替换为使大小依赖于onThroughput:

代码语言:javascript
运行
复制
size1 <- dataset$Throughput
geom_point(size=size1, alpha=0.5,aes(colour=`Label`), na.rm = TRUE)

但你的挑战不限于此。让我给你看看我的意思。

很高兴你提供了一个数据样本。但是并不是很好,因为样本数据杂乱无章,不太容易获得,因为分隔符似乎是一个space,并且您的变量中有几个空格。如果您使用此方法,则:

代码语言:javascript
运行
复制
Throughput,Label,ThroughputAgegroup
621,Assess reimbursement,1-3 Maanden
1201,Assess reimbursement,3-6 Maanden
105,Authorized,3-6 Maanden
150,Cancelled,1-3 Maanden
771,Cancelled,3-6 Maanden
4215,Closed,0-14 Dagen
57098,Closed,1-3 Maanden
14180,Closed,15-30 Dagen
26631,Closed,3-6 Maanden
14813,Closed,6-12 Maanden
52347,Closed,Groter dan 12 maanden
1600,Dispatched,1-3 Maanden
58,Dispatched,15-30 Dagen
394,Dispatched,3-6 Maanden
110,Intake,1-3 Maanden
818,Ready for closure,1-3 Maanden
112,Ready for closure,3-6 Maanden

您可以使用dataset <- read.delim("clipboard", sep = ",")轻松地复制它并将其导入R中。

现在,图表:

Plot 1 -您的原始图表:

绘图3 -您的图表上有geom_point(size=size1, alpha=0.5,aes(colour=标签), na.rm = TRUE)

我打赌这不是你要找的。这里发生的是,你有一些值是低的,还有一些其他的值是相当高的,所以图表是由后者主导的。但不要绝望,您可以使用该系列的日志:

代码语言:javascript
运行
复制
# my suggestion
size2 <- log(dataset$Throughput)
ggplot(dataset, aes(x=`ThroughputAgegroup`, y=`Label`))+ 
  geom_point(size=size2, alpha=0.5,aes(colour=`Label`), na.rm = TRUE) +
  geom_text(aes(label=`Throughput`), size=3) + 
  scale_colour_brewer(palette="Set1")

-气泡大小= log(dataset$Throughput)

我觉得这看起来没问题!但是,您也可以使用log(dataset$Throughput)^1.6进行进一步的调整,并调整最后一部分^1.6,如下所示:

如果您仍然不太高兴,请看一看ggplot2.tidyverse.org的优秀文档,然后从那里开始。

下面是一个简单的复制和粘贴的全部代码:

代码语言:javascript
运行
复制
library(ggplot2)

# rm(list=ls())
# dataset <- read.delim("clipboard", sep = ",")

# original
ggplot(dataset, aes(x=`ThroughputAgegroup`, y=`Label`))+ 
  geom_point(size=10, alpha=0.5,aes(colour=`Label`), na.rm = TRUE) +
  geom_text(aes(label=`Throughput`), size=3) + 
  scale_colour_brewer(palette="Set1")

# my suggestion
size2 <- log(dataset$Throughput)
size3 <- log(dataset$Throughput)^1.6
ggplot(dataset, aes(x=`ThroughputAgegroup`, y=`Label`))+ 
  geom_point(size=size3, alpha=0.5,aes(colour=`Label`), na.rm = TRUE) +
  geom_text(aes(label=`Throughput`), size=3) + 
  scale_colour_brewer(palette="Set1")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40504168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档