r - 无法通过重新排序重新排序 R ggplot geom_bar() 函数中的条形图
问题描述
我正在尝试为我的随机森林分类器模型绘制一个变量重要性,并且从经过训练的模型中,我将能够为我的 7 个类中的每一个类获得所有 105 个特征变量的重要性分数。所以我现在想将它们绘制为简单的条形图:每个条表示一个特征变量(字符变量),条的高度将是它的重要性分数(数字),然后我可以使用 facet 来查看每个类,所有特征的重要性分数如何在每个类别中排名。
我希望每个 Class facet plot 将特征的重要性从高到低排列,我认为这是我的代码搞砸的地方。我认为 reorder () 在我面对它时不起作用。有没有什么办法解决这一问题?
然后,一旦我可以得到该图,为简单起见,我可能需要第二张图来显示每个构面图中的前 20 个特征。
我认为核心问题在我的数据中,特征 A 可能对 A 类非常重要,但对 B 类来说不是那么重要,所以让 R 感到困惑?非常感谢一些直观的解释。
真实数据(对不起,wpnt 列表太长了,所以我把它放在谷歌驱动器上)
https://drive.google.com/file/d/18-1CWvALU-ILAHIFWsz8jjcvsXnXD0WQ/view?usp=sharing
编码:
ggplot(importance_tbl,aes(x=reorder(Feature,-Importance) ,y=Importance)) +
geom_col()+
facet_wrap(.~Class)+
coord_flip() +
scale_fill_grey() +
scale_y_discrete(guide = guide_axis(n.dodge=3))+
theme_bw()
您会看到输出,x 轴标签没有按重要性排序,而是分散
解决方案
推荐阅读
- visual-studio-code - vscode 扩展在哪里存储登录信息?
- java - Thymeleaf 3 和 Spring Boot 2.1 的模板解析错误
- xml - 字符实体转换为 chr
- spring-boot - Java + Cloudflare + 相互身份验证
- sqlite - 在 perl 中关闭 AutoCommit 调用 SELECT 语句时,SQLite 是否执行磁盘活动?
- c# - 带有 WHERE 条件的 XElement LINQ 失败
- javascript - 使用jquery将fadeIn更改为幻灯片
- javascript - javascript-obfuscator 显示的不清楚的错误
- javascript - React 中的样式特定 HTML 标签
- reactjs - SyntaxError:意外的令牌,预期的“”