我知道已经有很多关于这个主题的文章,其中大多数都是由ggplot2中没有映射的变量或数据造成的。然而,在我的例子中,我确实拥有它,并在我的ggplot2中进一步使用它。
我的源是来自Power的数据集
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情节:
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
。
当我尝试运行这个:
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不知道如何处理类非的数据
但我就是不明白它为什么不能去上课?
发布于 2018-09-06 10:39:42
正如评注所指出的那样,存在以下问题:
geom_point(aes(size=`Throughput`), alpha=0.5,aes(colour=`Label`))
您需要将其替换为使大小依赖于onThroughput:
size1 <- dataset$Throughput
geom_point(size=size1, alpha=0.5,aes(colour=`Label`), na.rm = TRUE)
但你的挑战不限于此。让我给你看看我的意思。
很高兴你提供了一个数据样本。但是并不是很好,因为样本数据杂乱无章,不太容易获得,因为分隔符似乎是一个space
,并且您的变量中有几个空格。如果您使用此方法,则:
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)
我打赌这不是你要找的。这里发生的是,你有一些值是低的,还有一些其他的值是相当高的,所以图表是由后者主导的。但不要绝望,您可以使用该系列的日志:
# 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的优秀文档,然后从那里开始。
下面是一个简单的复制和粘贴的全部代码:
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")
https://stackoverflow.com/questions/40504168
复制相似问题