我想通过 ggplot 2 从向量绘制直方图。数据集是数据集包中的河流
rivers
[1] 735 320 325 392 524 450 1459 135 465 600 330 336 280 315 870 906 202 329
[19] 290 1000 600 505 1450 840 1243 890 350 407 286 280 525 720 390 250 327 230
[37] 265 850 210 630 260 230 360 730 600 306 390 420 291 710 340 217 281 352
[55] 259 250 470 680 570 350 300 560 900 625 332 2348 1171 3710 2315 2533 780 280
[73] 410 460 260 255 431 350 760 618 338 981 1306 500 696 605 250 411 1054 735
[91] 233 435 490 310 460 383 375 1270 545 445 1885 380 300 380 377 425 276 210
[109] 800 420 350 360 538 1100 1205 314 237 610 360 540 1038 424 310 300 444 301
[127] 268 620 215 652 900 525 246 360 529 500 720 270 430 671 1770
Run Code Online (Sandbox Code Playgroud)
起初我尝试了这些但没有用:
> ggplot(rivers,aes(rivers))+geom_histogram()
Error: ggplot2 doesn't know how to deal with data of class numeric
> ggplot(rivers)+geom_histogram(aes(rivers))
Error: ggplot2 doesn't know how to deal with data of class numeric
Run Code Online (Sandbox Code Playgroud)
然后我发现了一个类似的问题,并发现我可以通过以下方式实现我的目标:
ggplot()+aes(rivers)+geom_histogram()
or
ggplot()+geom_histogram(aes(rivers))
Run Code Online (Sandbox Code Playgroud)
我阅读了 ggplot 帮助文档并有以下问题:
Run Code Online (Sandbox Code Playgroud)ggplot(aes(rivers))+geom_histogram() Error: ggplot2 doesn't know how to deal with data of class uneval
如果您没有ggplot显式提供参数名称,则值将分配给错误的ggplot参数(按顺序排列的第一个是dataarg)。参数顺序可以在相关函数帮助页面查看:
?ggplot
Run Code Online (Sandbox Code Playgroud)
ggplot(data = NULL, mapping = aes(), ..., environment = parent.frame())
因此,当您提供aes()给 ggplot 而不指定参数名称时,就像执行以下操作:
ggplot(data = aes(rivers)) + geom_histogram()
Run Code Online (Sandbox Code Playgroud)
因为data参数不允许这种数据类型 - 你会得到一个错误。提供正确的参数名称可以解决问题:
ggplot(mapping = aes(rivers)) + geom_histogram()
Run Code Online (Sandbox Code Playgroud)
错误的原因rivers是vector.
ggplot(aes(rivers))+
geom_histogram()
Run Code Online (Sandbox Code Playgroud)
错误:ggplot2 不知道如何处理 uneval 类的数据。
aes()您是否不小心提供了论证的结果data?
将其转换为data.frame然后就可以工作了
library(ggplot2)
library(dplyr)
data_frame(val = rivers) %>%
ggplot(., aes(val)) +
geom_histogram()
Run Code Online (Sandbox Code Playgroud)
set.seed(24)
rivers <- sample(700:1700, 150)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16845 次 |
| 最近记录: |