gpt4 book ai didi

R ggplot2 不知道如何处理 uneval 类的数据

转载 作者:行者123 更新时间:2023-12-05 01:20:53 28 4
gpt4 key购买 nike

我知道已经有很多关于这个主题的帖子,其中大部分都归因于未在 ggplot2 中映射的变量或数据。但是,就我而言,我确实拥有它,并且在我的 ggplot2 中进一步使用它。

我的来源是来自 Power BI 的数据集

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")

我想让大小取决于吞吐量

当我尝试运行它时:

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")

我得到提示:错误:ggplot2 不知道如何处理 uneval 类的数据

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

最佳答案

正如评论已经指出的那样,存在以下问题:

geom_point(aes(size=`Throughput`), alpha=0.5,aes(colour=`Label`))

这是您需要用它来替换它以使大小取决于吞吐量:

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 中

现在,图表:

绘图 1 - 您的原始图表:

enter image description here

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

enter image description here

我敢打赌这不是您要找的。这里发生的情况是,您有一些值较低,而其他一些值相对非常高,因此图表由后者主导。不过不要绝望,你可以用系列的日志代替:

# 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)

enter image description here

我觉得还行!但您也可以使用 log(dataset$Throughput)^1.6 进行进一步调整。并调整最后一部分 ^1.6 ,像这样:

enter image description here

如果您仍然不太满意,请查看 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")

关于R ggplot2 不知道如何处理 uneval 类的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40504168/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com