首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggplot2显示错误的条形图(每12个条形图为最小值)

ggplot2显示错误的条形图(每12个条形图为最小值)
EN

Stack Overflow用户
提问于 2016-03-19 06:30:14
回答 1查看 54关注 0票数 1

我正在尝试用下面的数据集用ggplot2制作条形图。

代码语言:javascript
复制
Incentive Marginal.Abatement.Cost    Tech
1  Status Quo                    -100  Tech 1
2  Status Quo                     -99  Tech 2
3  Status Quo                     -98  Tech 3
4  Status Quo                     -97  Tech 4
5  Status Quo                     -96  Tech 5
6  Status Quo                     -95  Tech 6
7  Status Quo                     -94  Tech 7
8  Status Quo                     -93  Tech 8
9  Status Quo                     -92  Tech 9
10 Status Quo                     -91 Tech 10
11 Status Quo                     -90 Tech 11
12 Status Quo                     -89 Tech 12
13 Status Quo                     -88 Tech 13
14 Status Quo                     -87 Tech 14
15 Status Quo                     -85 Tech 15
16 Status Quo                     -83 Tech 16
17 Status Quo                     -81 Tech 17
18 Status Quo                     -79 Tech 18
19 Status Quo                     -77 Tech 19
20 Status Quo                     -75 Tech 20
21 Status Quo                     -73 Tech 21

对于91个观察值,数据集就是这样的。当我使用下面的ggplot代码绘制它时,由于某些原因,每12个条形图都会显示-100,而不管它应该是什么。

代码语言:javascript
复制
ggplot(CRIFQuo, aes(x = Tech, y = Marginal.Abatement.Cost)) + geom_bar(stat = "identity")

EN

回答 1

Stack Overflow用户

发布于 2016-03-19 09:47:26

正如评论者所确定的那样,R默认按字母顺序对因子级别进行排序,例如

代码语言:javascript
复制
sort(paste0("x",1:12))
## [1] "x1"  "x10" "x11" "x12" "x2"  "x3"  "x4"  "x5"  ...

另一方面,

代码语言:javascript
复制
gtools::mixedsort(paste0("x",1:12))
## [1] "x1"  "x2"  "x3"  "x4"  "x5"  "x6"  "x7"  ...

您可以重新排序因子级别,如下所示

代码语言:javascript
复制
CRIFQuo$x <- with(CRIFQuo,factor(x,levels=gtools::mixedsort(levels(x)))

在重新尝试绘图之前(当然,您需要首先安装gtools包)

或者,您可以将x变量转换为数字:

代码语言:javascript
复制
CRIFQuo$nTech <- as.numeric(gsub("^Tech ","",CRIFQuo$Tech)
ggplot(CRIFQuo, aes(x = nTech, y = Marginal.Abatement.Cost)) ...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36095318

复制
相关文章

相似问题

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