首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R- ggvis序轴

R- ggvis序轴
EN

Stack Overflow用户
提问于 2015-06-26 20:56:41
回答 3查看 797关注 0票数 1

我第一次和ggvis玩。我很难订购我的X轴。ggvis倾向于按字母顺序排序。我更喜欢不同的订单(分析师、顾问、软件工程师、经理、董事)。

代码/数据如下所示:

代码语言:javascript
复制
 > str(company$Age)
 int [1:19] 35 37 30 28 28 27 25 26 25 25 ...
 > str(company$Role)
 Factor w/ 5 levels "Analyst","Consultant",..: 3 3 4 4 4 5 2 2 1 1 ...

Ggvis代码如下所示:

代码语言:javascript
复制
company %>% ggvis(~Role,~Age) %>%
  layer_points()

结果是一个字母顺序。

关于这个问题,我找到了下面的帖子。然而,我不知道如何直接应用这个方法。

我试过:

代码语言:javascript
复制
company %>% ggvis(~Role,~Age) %>%
  layer_points() %>%
  add_axis("x", title = "Role", values = c("Analyst","Consultant","Software   Engineer","Manager","Director"

但这似乎行不通。

你能帮我确定如何订购这段代码吗?

提前谢谢你。

亲切的问候

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-26 21:30:02

您需要使用scale_ordinal来完成以下操作:

问题所在的样本数据是不可复制的(但它是同一类型的数据):

代码语言:javascript
复制
library(ggvis)
library(dplyr)
mydf2 <- iris %>%
  group_by(Species) %>%
  summarize(Sepal.Length = mean(Sepal.Length),
            Sepal.Width = mean(Sepal.Width)) 

解决方案:

初始图(这里没有排序)

代码语言:javascript
复制
mydf2 %>% as.data.frame()  %>% 
  ggvis(x = ~ Species, y = ~ Sepal.Length ) %>%
  layer_bars(fillOpacity := 0.1 )

自定义有序图(我在这里使用域参数手动更改顺序):

代码语言:javascript
复制
mydf2 %>% as.data.frame()  %>% 
  ggvis(x = ~ Species, y = ~ Sepal.Length ) %>%
  layer_bars(fillOpacity := 0.1 ) %>%
  scale_ordinal('x', domain=c('versicolor','setosa','virginica'))

X轴需要成为一个因素。

票数 3
EN

Stack Overflow用户

发布于 2015-06-26 21:19:36

你可以尝试在ggvis之外重新排序,例如,

代码语言:javascript
复制
company[["Role"]] = factor(
                       company[["Role"]]
                     , levels = c("Analyst","Consultant","Software Engineer","Manager","Director")
)
票数 2
EN

Stack Overflow用户

发布于 2017-08-16 08:40:43

在这个例子中,如何根据Sepal.Length值(从最大到最小)来设置图的顺序?

代码语言:javascript
复制
 mydf2 %>% as.data.frame() %>% 
arrange(desc(Sepal.Length)) %>% 
ggvis(x = ~ Species, y = ~Sepal.Length) %>% 
layer_bars()

 mydf2 %>% as.data.frame() %>% 
arrange(desc(Sepal.Length)) %>% 
ggvis(x = ~ Species, y = ~Sepal.Length) %>% 
layer_bars() %>% 
scale_ordinal("x", sort = TRUE)

此代码不提供所需的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31082021

复制
相关文章

相似问题

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