r - 如何使用 r 中的 facet wrap 过滤数据并绘制柱形图?
问题描述
https://www.kaggle.com/shivamb/netflix-shows-and-movies-exploratory-analysis/notebook包含数据集。(文件大小为 2.1 MB)
我正在寻找实现以下数据集的目标 - 确定来自美国、英国和印度国家的前 25 位主要参与者。
我制定的代码如下,
library(tidyverse)
net_flix <- read.csv("netflix_titles_nov_2019.csv")
net_flix %>%
separate_rows(country, sep = ",")%>%
filter(country == "India"| country == "United States"| country == "United Kingdom")%>%
separate_rows(cast, sep = ",")%>%
count(cast)%>%
slice_max(n, n = 25)%>%
ggplot(aes(y = fct_reorder(cast, n), x = n))+
geom_col()
结果输出如下,
预期输出如下,(仅图表顶部)
在查看建议的问题后进行尝试https://stackoverflow.com/questions/55864054/filtering-the-data-using-pickerinput-and-plotting-based-on-the-filtered-data-i
解决方案
尝试这个。问题facet_wrap
在于,为了按国家/地区分面,您必须同时按演员和国家/地区计数。还。为了在每个方面排序条形,我使用了 tidytext::reorder_within 和 tidytext::scale_x_reordered:
library(tidyverse)
net_flix <- read.csv("netflix_titles_nov_2019.csv")
net_flix %>%
separate_rows(country, sep = ",")%>%
filter(country == "India"| country == "United States"| country == "United Kingdom")%>%
separate_rows(cast, sep = ",")%>%
# Count by country and cast
count(country, cast)%>%
slice_max(n, n = 25)%>%
ggplot(aes(y = tidytext::reorder_within(cast, n, country), x = n))+
geom_col() +
tidytext::scale_y_reordered() +
facet_wrap(~country, scales = "free")
这给了我这个情节:
推荐阅读
- c# - Xamarin 表单集合视图分页
- java - 我的布局适配器有问题!初学者安卓:(
- javascript - 如何让 MulterS3 自动内容类型不损坏图像?
- javascript - 多个单词的Javascript正则表达式
- reactjs - 如何修复远程 React 应用程序加载到 Angular SPA 的时间?
- php - 将选定的代码提取到变量中(重构)
- python - 不可行的解决方案 MILP Gurobi - 中值回归估计
- azure - Azure 服务连接:登录中的转义字符
- angular-cli - Angular 无法安装 ESLint,它不包含 package.json 文件
- javascript - useState 初始值未设置