Setting ranges for a bar chart in R and displaying count of items

陌路散爱 提交于 2019-12-08 01:20:33

问题


I have created a data frame from iris dataset using the following command:

new_iris = data.frame(iris$Species,iris$Sepal.Length)
range(iris$Sepal.Length)

The second command tells me the range of the Sepal.Length. I want to implement a bar plot using plotly or ggplot2 such that the code decides the ranges of Sepal.Length automatically and then each range contains one bar which gives the count of all the Sepal.Length values in that range. So let's say if the ranges decided are "2-4","4-6","6-8", I should get 3 bars which give me a count of all the sepal.length values between "2-4","4-6" and "6-8". Attaching the snapshot too, In the plot below, I wish to edit x-axis labels with the ranges that the code will decide and y-axis label "total_bill" with "cases". Thanks and please help.


回答1:


iris$sepal_gp <- cut(iris$Sepal.Length, breaks=3, include.lowest=TRUE)
ggplot(iris, aes(sepal_gp, fill=Species)) + geom_bar()

Edit:

ggplot(iris, aes(sepal_gp, fill=sepal_gp)) + geom_bar()

To remove legend and put in custom hover text in ggplotly:

(i) calculate the count for each group

library(dplyr)
iris <- iris %>% 
     group_by(sepal_gp) %>% 
     mutate(sepal_gp_count = n())

(ii) insert custom hover text in ggplot:

 p <- ggplot(iris, aes(sepal_gp, fill=sepal_gp, text=paste("Case: <br>", sepal_gp, "<br> Count: <br>", sepal_gp_count))) + 
      geom_bar() 

(iii) plot with ggplotly:

ggplotly(p, tooltip="text") %>%
     layout(showlegend=FALSE)


来源:https://stackoverflow.com/questions/47132076/setting-ranges-for-a-bar-chart-in-r-and-displaying-count-of-items

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!