2

我使用以下命令从 iris 数据集创建了一个数据框:

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

第二个命令告诉我 Sepal.Length 的范围。我想使用 plotly 或 ggplot2 实现条形图,以便代码自动决定 Sepal.Length 的范围,然后每个范围包含一个条形图,该条形图给出该范围内所有 Sepal.Length 值的计数。因此,假设确定的范围是“2-4”、“4-6”、“6-8”,我应该得到 3 个条形图,它可以计算“2-4”之间的所有 sepal.length 值, “4-6”和“6-8”。也附上快照,在下面的图中,我希望用代码决定的范围编辑 x 轴标签,用“cases”编辑 y 轴标签“total_bill”。谢谢,请帮忙。

快照供参考

4

1 回答 1

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

在此处输入图像描述

编辑:

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

在此处输入图像描述

要删除图例并在 ggplotly 中放入自定义悬停文本:

(i) 计算每组的计数

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

(ii) 在 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) 用 ggplotly 绘图:

ggplotly(p, tooltip="text") %>%
     layout(showlegend=FALSE)
于 2017-11-06T08:04:40.377 回答